我正在用 boost::asio 编写一个 udp 广播服务器。udp 数据包将从一个源端接收并广播到多个目的地。在单个线程中执行此类操作是否安全?
boost::asio::ip::udp::socket s;
MyHandler handler; // do nothing handler
MyBuffer buffer; // buffer is allocated on heap and managed by smart ptr
...
s.async_send_to(buffer, destination1, handler);
s.async_send_to(buffer, destination2, handler);
s.async_send_to(buffer, destination3, handler);
或者我应该使用阻塞 send_to 来代替?或者我应该链接它们,即在第一个 async_send_to 的完成处理程序中调用第二个 async_send_to?