title: boost udp receiver on linux fails
body: <p>I am sending udp unicast packets from windows to linux .</p>
  
  <p>I have written simple application udp client and srever using boost .</p>
  
  <p>I am running client(udp sender) on windows and server (udp receiver ) on linux .</p>
  
  <p>my client is sending the udp packets but my udp receiver on linux is not receiving the packets . but I could see the udp packets on the wireshark(which is running on my linux pc) .</p>
  
  <p>I tested the port and ipaddress , all are proper .</p>
  
  <p>below is the code which is running on linux.</p>
  
  <p>If I run both(Client and server) on windows , it works fine</p>
  
  <pre><code>using boost::asio::ip::udp;
  
  class udp_server
  {
  public:
    udp_server(boost::asio::io_service&amp; io_service)
      : socket_(io_service, udp::endpoint(udp::v4(), 7799))
    {
      start_receive();
    }
  
  private:
    void start_receive()
    {
      socket_.async_receive_from(
          boost::asio::buffer(recv_buffer_), remote_endpoint_,
          boost::bind(&amp;udp_server::handle_receive, this,
            boost::asio::placeholders::error,
            boost::asio::placeholders::bytes_transferred));
    }
  
    void handle_receive(const boost::system::error_code&amp; error,
        std::size_t /*bytes_transferred*/)
    {
      if (!error || error == boost::asio::error::message_size)
      {
  
        start_receive();
      }
    }
  
    udp::socket socket_;
    udp::endpoint remote_endpoint_;
    boost::array&lt;char, 1&gt; recv_buffer_;
  };
  
  int main()
  {
    try
    {
      boost::asio::io_service io_service;
      udp_server server(io_service);
      io_service.run();
    }
    catch (std::exception&amp; e)
    {
      std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
    }
  
  return 0;
  }
  </code></pre>