我最近通过浏览网络了解UDP套接字,所有解释它的网页都提到UDP套接字是“少连接”。这个,如果我理解正确意味着一个人在两个套接字之间没有“连接”,而是将数据报包发送到指定的端点,而不知道另一端是否在监听。
然后我开始阅读boost :: asio :: ip :: udp :: socket docs并发现它提到了API:
现在这对新手来说有点混乱。我可以找到3个可能的原因导致我的困惑(按照相似的顺序:) :)
当您打开basic_datagram_socket::async_connect的页面时,文档中也存在轻微的故障,例如,实例化 TCP 套接字(而不是 UDP 那些)。
有人请赐教我吗?
答案 0 :(得分:11)
Single UNIX规范更好地解释了connect对无连接套接字的作用:
如果启动套接字不是连接模式,则connect()设置套接字的对等地址,但不进行连接。对于SOCK_DGRAM套接字,对等地址标识在后续send()调用中发送所有数据报的位置,并限制远程发送方以用于后续的recv()调用。