Networking “连接到”;“无连接”;boost::asio::ip::udp::socket

Networking “连接到”;“无连接”;boost::asio::ip::udp::socket,networking,udp,boost-asio,Networking,Udp,Boost Asio,我最近通过浏览网络了解了UDP套接字,所有解释它的页面都提到UDP套接字是“无连接的”。如果我理解正确,这意味着一个套接字在两个套接字之间没有“连接”,而是将数据报数据包发送到指定的端点,而不知道另一端是否正在侦听 然后我开始阅读boost::asio::ip::udp::socket,发现它提到了API,如: 异步连接:启动异步连接 异步接收:在连接的套接字上启动异步接收 异步发送:在连接的套接字上启动异步发送 这对新手来说有点困惑。我可以找到我困惑的3个可能原因(按相似性的顺序:) 我错

我最近通过浏览网络了解了UDP套接字,所有解释它的页面都提到UDP套接字是“无连接的”。如果我理解正确,这意味着一个套接字在两个套接字之间没有“连接”,而是将数据报数据包发送到指定的端点,而不知道另一端是否正在侦听

然后我开始阅读boost::asio::ip::udp::socket,发现它提到了API,如:

  • 异步连接:启动异步连接
  • 异步接收:在连接的套接字上启动异步接收
  • 异步发送:在连接的套接字上启动异步发送
这对新手来说有点困惑。我可以找到我困惑的3个可能原因(按相似性的顺序:)

  • 我错过了一些东西
  • asio实现在幕后做了一些事情来虚拟化连接
  • 文件是错误的
  • 文档中还有一个小问题,当您打开中的示例页面时,会出现实例化的TCP套接字(而不是UDP套接字)


    有人能告诉我吗?

    单一UNIX规范更好地解释了无连接套接字的作用:

    如果启动套接字不是连接模式,则connect()设置套接字的对等地址,但不进行连接。对于SOCK_DGRAM套接字,对等地址标识在后续send()调用中发送所有数据报的位置,并限制后续recv()调用的远程发送方


    +如果不是很明显,这就是原始问题中的困惑。