我有一个c语言的服务器,它接受来自客户端的select请求。我创建了一些线程来为客户端请求的操作提供服务。直到这一点我还好。但是现在我想要一个内部套接字,所以创建的线程将与主线程通信,通过它发送响应。任何想法如何解决所有这些?
答案 0 :(得分:1)
这很简单。您想要使用的是socketpair(2)
。为每个线程创建一对,你就完成了。
答案 1 :(得分:0)
@Guillaume是对的。但为什么要经历所有这些复杂性。
如果您打算让一台服务器有时与一个程序中的所有线程一起运行的服务器通过套接字进行通信,并且有时在具有“工作线程服务器”的不同计算机上运行,那么我只会这样做。通过常规套接字进行通信。
除非您需要具有这样的异国情调,否则您可以在具有共享内存块的线程之间进行通信(根据需要使用互斥锁保护)。例如。将任务对象从调度程序线程传递给工作线程。并且忘记了线程之间通信的序列化和反序列化数据的复杂性。