Java でのソケットの使用に問題があります。まず、Javaでソケットを使ってやりたいことを説明させてください。それを介してインターネット経由でラップトップを接続したい。私のラップトップにはサーバーがあり、クライアントはインターネット経由で接続する必要があります。ローカル ネットワークを処理するルーターがあり、ルーターのポートをラップトップに接続したくないため、"internet->router->localNetwork->mylaptop" というパスをたどる必要があります。問題は、インターネット IP アドレスとローカル IP アドレスの両方を使用する方法を見つけたことです。ただし、例外がスローされます。"Exception in thread "main" java.net.BindException: Address already in use"
私が試すコードは次のとおりです。
InetAddress addr = InetAddress.getByName("XXX.XXX.XXX.XXX");
InetAddress local = InetAddress.getByName("YYY.YYY.YYY.YYY");
Socket socket = new Socket(addr, 1111, local, 1111); // The line I have got exception
ルーター ポートをラップトップに導くことで、同様の目的で次のコードを実行できます。
Socket socket = new Socket("XXX.XXX.XXX.XXX", 1111);
*Xs はインターネット IP アドレスの略です
※YsはローカルIPアドレスの略
*コードはコードのクライアント側に属します