只是一个简单的问题。我有一个网络 C 应用程序(TCP 服务器),它有多个工作线程(Pthreads)。每个工作线程都使用
select
系统调用,并且每个线程都将侦听 socket descriptor
添加到其选择集中。因此,每个工作线程都会有效地侦听传入连接,并且一次只有一个线程成功接受特定连接,并且该连接的 socket descriptor
会添加到相应线程的 select
集中。
我的问题是每个线程都有自己的
select
集;我是否可以向套接字描述符位于另一个工作线程的选择集中的客户端发送或接收数据?换句话说,我可以使用任何工作线程的选择集中的套接字描述符来从我想要的任何线程执行 I/O 吗?
您可以在不同线程之间共享套接字和文件描述符。这就是大多数服务器所做的。