那里。
我正在尝试对服务器进行编程。
服务器从客户端接收一些信息
并将信息发送到另一台服务器,并接收响应。
我需要在这种情况下使用select()吗?
或仅使用Pthread就足以做到这一点。
我的服务器有许多客户端同时连接
请好心回答我。
如果有的话,请告诉我我可以参考的源代码或网站
最佳答案
实现处理多个客户端的服务器的一种方法是为每个客户端连接创建一个pthread,以便您可以在专用线程中读取/写入每个连接。听起来您要问的是“如果每个客户端连接都有一个pthread,是否还需要使用select
?”
在非常简单的服务器上,您可以省去select
:连接线程如下所示:
do {
read(conn, cmd);
response = process(cmd);
write(conn, response);
} while (cmd != DONE)
但是,即使使用专用的客户端线程,您可能仍会发现在客户端连接上调用
select
之前,仍想使用read
检查可用输入。例如,如果您需要能够在连接上实现空闲超时,则您将不希望执行阻塞read
。关于c - pthread并选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10275000/