是否可以连接两个套接字?
例如,如果一个进程充当两个其他进程之间的消息路由器,那么在某个时刻能够退出将节省大量套接字 IO。这看起来应该是可能的,但我从来没有听说过这样做!
如果可以的话,在 Linux 和 Windows 上都可以吗?如果是这样,是否使用不同的机制来设置它?
顺便说一句:我刚刚发现这个:
这看起来很接近我的要求(当然假设这也适用于套接字 FD),但是 Windows 上有等效的吗?
最佳答案
据我所知,这是不可能的。
一个简单的示例:如果您的进程在三台不同的计算机上运行,那么代理计算机如何在不涉及 TCP/UDP/任何级别的流量重定向的情况下退出?
splice 不是一个解决方案,它只是优化 I/O 传输,避免不必要的内存复制,但无论如何,您需要一个在输入上循环并调用 splice 来“传输”数据到输出的进程(并且如果套接字是真正的网络套接字,数据必须经过网卡两次)。
安德烈律师事务所
关于sockets - 加入 2 个套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503497/