2013-04-29 79 views
3

我们先来说说异步上的UDP套接字(其中加入了组播组)收到我recoderded的处理程序:如何在使用boost asio时获得UDP远程端点?

  udpSocket.async_receive(boost::asio::buffer(buffer, sizeof(buffer)), 
           boost::bind(&receiveCallback, 
               boost::asio::placeholders::error, 
               boost::asio::placeholders::bytes_transferred)); 

这里的想法是,我想要得到的远程地址和端口在receiveCallBack中接收UDP pacquet时。怎么做?有没有特定的占位符?如果没有,一次在回调中如何获取这些信息?

回答

3

我想你可能想要使用receive_from调用,它需要一个boost::asio::ip::udp::endpoint来捕获发送者数据。

在boost asio示例here中有一个示例组播接收器。特别是这个块:

socket_.async_receive_from(
    boost::asio::buffer(data_, max_length), sender_endpoint_, 
    boost::bind(&receiver::handle_receive_from, this, 
     boost::asio::placeholders::error, 
     boost::asio::placeholders::bytes_transferred)); 
+0

Thnx。我同时发现:http://www.boost.org/doc/libs/1_36_0/doc/html/boost_asio/tutorial/tutdaytime7/src.html。批准! :-) – 2013-04-29 13:42:26

相关问题