假设您有2个套接字(每个套接字将被其他TCP对等体监听),每个套接字都驻留在同一个进程上,这些套接字如何绑定,这意味着彼此的输入流将绑定到其他的输出流。套接字将持续传输数据,不会发生等待。通常情况下线程可以解决这个问题,但是,不是创建线程是否有更有效的管道套接字方式?
答案 0 :(得分:1)
如果需要将套接字的两端连接到同一进程,请改用pipe()
函数。此函数返回两个文件描述符,一个用于写入,另一个用于读取。为此目的,实际上没有必要涉及TCP。
更新:根据您对用例的说明,不,没有办法告诉操作系统将两个不同套接字的末端连接在一起。您必须编写代码以从一个套接字读取并将相同的数据写入另一个套接字。根据流程的体系结构,您可能需要或可能不需要额外的线程来完成此工作。例如,如果您的应用程序基于select()
循环,则无需创建另一个线程。
答案 1 :(得分:0)
您可以避免在流程中包含事件队列的线程。 WP Message queue文章假设您希望进行进程间消息传递,但是如果您正在使用套接字,那么您正在通过同一进程进行进程间消息传递。