假设你有两个套接字(每个套接字都会被其他TCP对等方监听),每个套接字都驻留在同一个进程上,如何绑定这些套接字,这意味着彼此的输入流将被绑定到另一个的输出流。套接字将持续传输数据,不会发生等待。通常线程可以解决这个问题,但是,是否有更有效的方法来管道套接字而不是创建线程?
发布于 2009-12-11 17:19:45
如果需要将套接字的两端连接到同一进程,请改用pipe()函数。此函数返回两个文件描述符,一个用于写入,另一个用于读取。出于这个目的,实际上并不需要使用TCP。
更新:根据您对用例的说明,没有任何方法可以告诉操作系统将两个不同套接字的末端连接在一起。您必须编写代码来从一个套接字读取数据,并将相同的数据写入另一个套接字。根据您的进程的体系结构,您可能需要也可能不需要额外的线程来完成此工作。例如,如果您的应用程序基于select()循环,则不需要创建另一个线程。
发布于 2009-12-11 17:20:45
您可以避免进程中具有事件队列的线程。WP Message queue文章假设您希望进行进程间消息传递,但如果您使用的是套接字,则可以在同一进程中进行进程间消息传递。
https://stackoverflow.com/questions/1886784
复制相似问题