ここに問題があります、それは非常に簡単です(理解するために..):
自宅に 2 台のコンピューターがあり、どちらも同じパブリック IP アドレス (例: 1.2.3.4) を持っています。
コーヒー ショップ (別のネットワーク) に 1 台のコンピューターがあるため、別のパブリック IP アドレスを持っています。
喫茶店のコンピュータから自宅にあるコンピュータの 1 つにメッセージ (例: 「こんにちは」) を送信したいと考えています。
私はJavaを使用しています。送信者用の次の非常に単純なプログラムを考えてください(単純にするために例外処理を取りました):
主に私は:
sendPacket("hi");
そして、私が持っています
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
}
自宅の両方のコンピューター (両方とも同じパブリック IP アドレス 1.2.3.4) でリスナー (レシーバー) を実行している場合、このメッセージの送信先を指定するにはどうすればよいですか?