0

我有一个 c 语言的服务器,它通过来自客户端的选择请求接受。我创建了一些线程来为客户端请求的操作提供服务。直到这一点我还好。但是现在我想要一个内部套接字,所以创建的线程将与主线程通信,通过它发送它们的响应。任何想法如何解决这一切?

4

2 回答 2

1

这很容易。您要为此使用的是socketpair(2). 为每个线程创建一对,您就完成了。

于 2013-06-01T20:01:26.770 回答
0

@Guillaume 是对的。但是为什么要经历所有这些复杂性。

如果您打算拥有一台服务器,该服务器有时运行在一个程序中的所有线程通过套接字进行通信,有时运行在具有通过常规套接字进行通信的“工作线程服务器”的不同计算机上,我只会这样做。

除非您需要像这样的奇特事物,否则您可以使用共享内存块在线程之间进行通信(适当地使用互斥锁进行保护)。例如,将任务对象从调度程序线程传递给工作线程。忘记序列化和反序列化数据以进行线程间通信的复杂性。

于 2013-06-01T20:06:37.600 回答