別のルータに接続されたコンピュータから私の家の1台のコンピュータでServerSocketに接続しようとしています。私は何時間もグーグルを探していて、すでにポートフォワーディングを設定しています。私はすでに私のパブリックIPアドレスとポート番号でソケットを作成しようとしましたが、成功しませんでした。私の質問は、私のパブリックIPアドレス、サーバーのローカルIPアドレス、ポート番号を知っているので、サーバーに正しく接続するためにソケットを作成するにはどうすればいいですか?別のルータのクライアントからサーバに接続する
これらは、しかし、誰成功し、私が試してみましたコンストラクタです:事前に
new Socket(my_public_ip_address, port);
new Socket(my_local_ip_address, port); <- this one works only if both computers are connected to the same router
ありがとう!
1.エラー出力/スタックトレースを追加できますか? 2.パブリックIPで表示されたネットワーク内のクライアントコンピュータ(パブリックルータ→クライアントとパブリックルータ→第2のルータ→サーバ)ですか?内部ネットワークからのパブリックIPを使ってルータのパブリックインターフェイスに接続することができない場合があります。あなたはサーバーの内部IPまたは第2のルータの "パブリック" IPに直接接続しようとするかもしれません。 – Konrad
ここでの問題は、ほぼ確実にルータでNATを使用しているため、エンドツーエンドの接続を行うことができなくなります。 Javaコードはそれとは関係ありません。着信接続を許可するようにルータを設定する必要があります。スーパーユーザーはそのためのより有用なサイトかもしれません。 – chrylis
あなたのクイック返信をお寄せいただきありがとうございます、私は明日あなたの提案をすべて試してみるでしょう! – andyfed