我最近通过浏览网络来了解 UDP 套接字,所有解释它的页面都提到 UDP 套接字是“少连接”。如果我理解正确,这意味着一个在两个套接字之间没有“连接”,而是在不知道另一端是否正在侦听的情况下将数据报包发送到指定的端点。
然后我开始阅读 boost::asio::ip::udp::socket文档,发现它提到的 API 如下:
- async_connect:启动异步连接。
- async_receive:在连接的套接字上启动异步接收。
- async_send:在已连接的套接字上启动异步发送。
现在这对新手来说有点混乱。我可以找到 3 个可能导致我困惑的原因(按相似度排序:))
- 我错过了一些东西
- asio 实现在幕后做一些事情来虚拟化连接。
- 文档有误
文档中还有一个小故障,当您打开basic_datagram_socket::async_connect的页面时,其中的示例正在实例化TCP套接字(而不是UDP套接字)。
有人请赐教吗?