UDP-сервер boost :: asio, как отправить, не выполняя сначала receive_from? - PullRequest
0 голосов
/ 31 марта 2020

Во всех примерах сервера udp приведен код ниже. Но в моем случае я просто хочу, чтобы сервер отправлял, есть ли клиент, готовый к приему. Поэтому не хотелось бы использовать вызов receive_from для получения конечной точки. Могу ли я сделать это в Boost?

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

1 Ответ

2 голосов
/ 31 марта 2020

Документация для 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);
...