title: How to send a UDP packet to a specific computer when all the computer on the network have the same public IP address?
body: <p>Here's the problem, it's very simple (to understand..):</p>
  
  <p>I have 2 computers at home, they both have the same public IP address (e.g. 1.2.3.4).</p>
  
  <p>I have 1 computer at a coffee place (different network) so it has a different public IP address.</p>
  
  <p>I want to send a message (e.g. "hi") from the computer at the coffee place to ONE of computers I have at home.</p>
  
  <p>I'm using Java, think of the following very simple program for the sender (I took off exception handling for simplicity):</p>
  
  <p>In main I do:</p>
  
  <pre><code>sendPacket("hi");
  </code></pre>
  
  <p>and I have</p>
  
  <pre><code>void sendPacket(String message){
      DatagramSocket myServerSocket = new DatagramSocket(9000);    // server socket
      byte[] sendData = new byte[message.length()];    // build msg
      sendData = message.getBytes();
      InetSocketAddress destSocketAddr = new InetSocketAddress("1.2.3.4", 9000);    // destination socket addr
      DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, destSocketAddr);     // make packet 
      myServerSocket.send(sendPacket);    // send packet
  }
  </code></pre>
  
  <p>If I have my listener (receiver) running on both computers at home (both with the same public IP address 1.2.3.4) how can I specify which one I intend to send this message to?</p>