在多个线程之间共享套接字描述

时间:2012-04-22 20:18:07

标签: c multithreading sockets select network-programming

只是一个简单的问题。我有一个网络C应用程序(TCP服务器),它有多个工作线程(Pthreads)。每个工作线程使用select系统调用,每个线程都将监听socket descriptor添加到其选择集。因此,每个工作线程都有效地侦听传入连接,并且一次只有一个线程成功接受特定连接,并且该连接的socket descriptor被添加到相应线程的select集中。

我的问题是每个线程都有自己的select集合,我是否可以向其套接字描述符位于另一个工作线程选择集的客户端发送或接收数据?换句话说,我可以使用任何工作线程的选择集中的套接字描述符来从我想要的任何线程执行I / O吗? 感谢

1 个答案:

答案 0 :(得分:4)

您可以在不同的线程之间共享套接字和文件描述符。这就是大多数服务器所做的事情。