我最近通过浏览网络了解了 UDP 套接字,所有解释它的页面都提到 UDP 套接字是“少连接”。如果我理解正确的话,这意味着两个套接字之间没有“连接”,而是在不知道另一端是否正在监听的情况下将数据报包发送到指定的端点。
然后我开始阅读 boost::asio::ip::udp::socket docs并发现它提到了如下 API:
现在这对新手来说有点困惑。我可以找到 3 个可能导致我困惑的原因(按可能性排序 :))
当您打开 basic_datagram_socket::async_connect 的页面时,文档中还有一个小故障。那里的例子是实例化 TCP 套接字(而不是 UDP 的)。
有人会启发我吗?
最佳答案
Single UNIX 规范对 connect 有更好的解释适用于无连接套接字:
If the initiating socket is not connection-mode, then connect() sets the socket's peer address, but no connection is made. For SOCK_DGRAM sockets, the peer address identifies where all datagrams are sent on subsequent send() calls, and limits the remote sender for subsequent recv() calls.
关于networking - 连接 "connection less"boost::asio::ip::udp::socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644115/