pthread并选择

时间:2012-04-23 04:55:26

标签: c

那里。

我正在尝试编写服务器。

服务器从客户端

接收一些信息

它将信息发送到另一台服务器并收到响应。

我是否需要在这种情况下使用select()?

或Pthread只能做到这一点。

我的服务器有很多客户端并发连接

请帮助我。

如果有,请告诉我可以参考的源代码或网站

2 个答案:

答案 0 :(得分:0)

我不确定你使用pthread在客户端和服务器之间进行通信是什么意思 - 我对pthread的体验是与通信无关的POSIX线程库......

广泛提供有关如何使用select的文档和示例:

http://support.sas.com/documentation/onlinedoc/sasc/doc750/html/lr2/select.htm http://www.lowtek.com/sockets/select.html

是使用google ....搜索“select c”可能会找到的内容的示例。

答案 1 :(得分:0)

实现处理多个客户端的服务器的一种方法是为每个客户端连接创建一个pthread,以便您可以在专用线程中读/写每个连接。这听起来像你要问的是“如果我有每个客户端连接的pthread,我还需要使用select吗?”

在一个非常简单的服务器中,您可以省去select:连接线程类似于:

do {
      read(conn, cmd);
      response = process(cmd);
      write(conn, response);
} while (cmd != DONE)

但是,即使使用专用客户端线程,您可能会发现在调用客户端连接上的select之前,仍然需要使用read检查可用输入。例如,如果您需要能够在连接上实现空闲超时,则不希望仅阻止read