首页 > 解决方案 > boost::asio UDP 服务器,如何发送而无需先进行 receive_from?

问题描述

在所有udp服务器的例子中,都有下面的代码。但就我而言,我只想让服务器发送,无论是否有客户端准备好接收。所以希望不必使用 receive_from 调用来获取端点。我可以在提升中做到这一点吗?

size_t length = sock.receive_from(
        boost::asio::buffer(data, max_length), sender_endpoint);
sock.send_to(boost::asio::buffer(data, length), sender_endpoint);

标签: c++udpboost-asio

解决方案


send_to的文档实际上包含一个示例,说明如何构造端点地址并将其发送到它,而无需先从端点接收。引用:

boost::asio::ip::udp::endpoint destination(
    boost::asio::ip::address::from_string("1.2.3.4"), 12345);
socket.send_to(boost::asio::buffer(data, size), destination);

推荐阅读