在boost::asio
文档中,据我所知,send
用于将数据发送到连接的套接字,而send_to
用于将数据发送到未连接的套接字。我使用命令nc -u -l 12345
在一台计算机上侦听udp流量,并尝试从另一台计算机发送一些文本数据。我采用了blocking udp echo client的示例代码。这个例子使用send_to
方法(对于未连接的套接字),我想重写它,所以它将使用send
方法(对于连接的套接字),我该怎么做?如何连接udp套接字?我使用bind
和我的套接字,它没有返回任何错误,但我的套接字仍未连接。是否有迹象表明我可以从我的套接字连接的系统中获取(即netstat
或类似的东西)
答案 0 :(得分:3)
UDP“连接”术语与TCP不同。您不会在netstat
输出中看到UDP“连接”。
正如 man 7 udp 所说:
在套接字上调用connect(2)时,默认目标 设置地址,现在可以使用send(2)或write(2)发送数据报 没有指定目的地地址。
因此,您可以在connect
上执行boost::asio::ip::udp::socket
,然后在不指定端点的情况下使用send
方法。查看udp::socket手册,了解您需要的方法。