Java ソケットを使用してクライアントとサーバーを作成しました。2 台のマシンは同じネットワーク上にあります。ローカル IP アドレスを使用して接続すると、問題はありません。ただし、パブリック IP アドレスを使用すると、接続がタイムアウトし、クライアントが「SocketException: connection reset」をスローし、サーバーが「SocketException: connection reset by peer: socket write error」をスローします。これはほとんどの場合に発生しますが、ブルームーンに一度接続が実際に成功します。クライアントマシンからサーバーのローカルアドレスとルーターに正常にpingできます。
ルーターにアクセスし、サーバー マシンに永続的な IP アドレスを割り当て、関連するポートのすべてのトラフィックをその IP アドレスに転送しました。残念ながら、それが問題を解決できると私が思った唯一のことでしたが、解決しませんでした. サーバーのWindowsファイアウォールもオフにしましたが、まだうまくいきません。
クライアント: (whatismyip.com から取得した IP)
Socket s = new Socket("xx.xxx.xxx.xx", 27499);
接続する。
サーバー:
InetAddress ip = InetAddress.getLocalHost();
ServerSocket ss = new ServerSocket(27499, 0, ip);
Socket cs = ss.accept();
どんな助けでも大歓迎です。必要に応じて、さらにコードを提供できます。