c++ - Send UDP packet to a public IP using Boost.asio -


i want send udp packets static ip 122.***.***.*** udp server listens on port 1213.

udp::resolver resolver(io_servicesend);     udp::resolver::query query(udp::v4(),"122.***.***.***","1213");     udp::endpoint receiver_endpoint = *resolver.resolve(query);      udp::socket socket(io_servicesend);     socket.open(udp::v4());      boost::shared_ptr<std::string> message(new std::string("transfer"));      socket.send_to(boost::asio::buffer(*message), receiver_endpoint); 

but fails. because sending private port rather sending nat's port. tcp works perfectly. can 1 explain me theory or post link.

and server code is

udptunnel::udptunnel(boost::asio::io_service& io_service) :socket_(io_service, udp::endpoint(udp::v4(), 1213)) { start_receive(); }  void udptunnel::start_receive() {     socket_.async_receive_from(             boost::asio::buffer(recv_buffer_), remote_endpoint_,             boost::bind(&udptunnel::handle_receive, this,             boost::asio::placeholders::error,             boost::asio::placeholders::bytes_transferred));     cout << "\nudp started listening"; }  void udptunnel::handle_receive(const boost::system::error_code& error,std::size_t) {  cout << "\nudp recieved message";  if (!error || error == boost::asio::error::message_size)   {   cout << "\nrecieved message";   } 

}


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -