2013-04-29 57 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

相關問題