【发布时间】:2018-11-19 10:23:38
【问题描述】:
我使用套接字在 c 中制作了一个简单的客户端-服务器程序,现在我想通过模拟多个客户端同时连接到服务器来测试它!我编写了一个脚本来执行客户端:./client 20 次但它对我不起作用,因为它等待每个客户完成。
我还用c写了另一个程序,这次用线程,所以它可以用system(./client)执行每个客户端,然后分离线程,但我又遇到了同样的问题!
那么实现这个的正确方法是什么?
【问题讨论】:
-
我想你的问题可以在这里得到解答:multithread server/client implementation in C
-
你可能需要
./client &(或者,要运行20,考虑for i in $(seq 1 20); do ./client &; done)在后台运行客户端。要编写一个 C 程序来完成这项工作,它(可能)会接受参数来说明要运行多少副本,以及要运行什么,并将 fork 并且子程序将执行指定的程序。 -
要为多个客户端提供服务,您需要避免阻塞 I/O... 在实现多线程的服务器中,使用
fork()异步处理通信。 -
您已指出您尝试过的两种不同的方法都行不通,但您并未准确展示您尝试过的方法。