使用boost::asio::ip::udp时send和send_to的用法

Usage of send and send_to when using boost::asio::ip::udp

本文关键字:send 用法 to boost asio ip udp 使用      更新时间:2023-10-16

boost::asio文档中,据我所知,send用于向已连接的套接字发送数据,而send_to用于向未连接的套接字发送数据。我使用命令nc -u -l 12345在一台计算机上侦听udp流量,并尝试从另一台计算机发送一些文本数据。我采取了阻断udp echo客户端的示例代码。这个例子使用send_to方法(对于未连接的套接字),我想重写它,所以它将使用send方法(对于已连接的套接字),我该怎么做?我怎样才能使我的udp套接字连接?我使用bind与我的套接字,它没有返回错误,但我的套接字仍然没有连接。是否有迹象表明我可以从系统中获得我的套接字已连接(即netstat或类似的东西)

UDP的"已连接"术语与TCP不同。你不会在netstat输出中看到UDP"连接"。

作为man 7 udp说:

当在套接字上调用connect(2)时,默认目的地地址设置和数据报现在可以使用send(2)或write(2)发送不指定目的地址。

因此,您可以在boost::asio::ip::udp::socket上执行connect,然后在不指定端点的情况下使用send方法。