【发布时间】:2011-04-03 17:17:26
【问题描述】:
我有一个使用send() 和recv() 的TCP 客户端/服务器连接。这在全双工下工作得很好。但是,如果我希望第 3 方能够在会话中加入并在此线路上进行通信,它是如何实现的?我需要另一个插座吗?
【问题讨论】:
标签: c sockets unix networking
我有一个使用send() 和recv() 的TCP 客户端/服务器连接。这在全双工下工作得很好。但是,如果我希望第 3 方能够在会话中加入并在此线路上进行通信,它是如何实现的?我需要另一个插座吗?
【问题讨论】:
标签: c sockets unix networking
是的,您需要第二个插座。 TCP 套接字是面向连接的,因此它们仅用于管理 2 台主机之间的单个连接。
通常,您可以使用在众所周知的端口上打开的套接字来建立从客户端到服务器的连接。然后,一旦建立连接,您就可以将其传输到另一个套接字。
【讨论】:
如果您不限于 TCP,IP multicast 和其他基于它的协议可能是一个选项,具体取决于您的应用程序。
【讨论】:
另一种选择可能是使用无连接的 UDP。每个数据报将包含发送者。但是,您可以根据无序、不可靠的数据报构建有意义的对话流。
【讨论】: