私が扱っているTcpクライアント/サーバコードは、clientとserverです。 タイトルのとおり、私はコンピュータ上でサーバコードを実行しています。クライアントコードを使用して別のデバイスからサーバコードに接続したいとします。私の質問は、私のクライアントコードはどのIPアドレスに接続する必要がありますか?私は多くの関連記事があることを知っていますが、解決策ではなく何が問題なのかについての情報しか得ていません。あるデバイスから別のデバイスのTcpサーバにTcpクライアントを接続する
答えて
これは、クライアント/サーバーアプリケーションを開発する際の一般的な問題です。典型的なホームネットワークには、複数のローカルIPアドレスと1つの外部IPアドレスがあります。外部からネットワークと通信するすべてのデバイスは、外部IPアドレスを使用する必要があります。しかし、クライアント/サーバアプリケーションを書くときに、接続先のアドレスとして外部IPアドレスを入力するだけであれば、これはうまく動作しません。
ポート転送を使用する必要があります。クライアントとサーバは特定のポートを介して通信し、ポート転送は、クライアントが外部IPアドレスに接続しているときにデータを送信するローカルIPアドレスをルータがどのように知っているかを示します。ルータ設定にログインし、ポート転送に関するセクションに移動して、サーバで使用しているポートを介した通信を、サーバが動作しているローカルIPアドレスにリダイレクトするように指定します。ルーターでこれらの設定を変更する方法は、使用しているルーターによって異なります。
サーバーを実行しているマシンのWindowsコマンドプロンプトでipconfigコマンドを実行します。結果からローカルIPv4アドレスを取得します。これは、クライアント/サーバーアプリケーションで使用されるポートをポート転送するときに使用するアドレスです。ルータの設定を適切に調整すれば、クライアントはあなたの外部IPアドレスをうまく使用できるはずです。
外部IPアドレスを見つけるには、http://www.whatsmyip.org/などの任意のWebサイトが正常に動作するはずです。
これらの問題をすべて回避し、ホームネットワーク上でアプリケーションをテストしたい場合は、サーバーが稼働しているマシンでipconfigコマンドを実行するときに見つかったローカルIPv4アドレスを使用します。これは、クライアントとサーバーの両方が同じネットワーク上で実行されている場合にのみ機能します。
あなたが提案したように、私はクライアントとサーバーの両方が同じネットワーク上にあります。自分のラップトップ(サーバー)のローカルIPv4アドレスを使用していますので、クライアントはそのアドレスを理解できるはずです。しかし、私はこのエラーが発生します - WinRT情報:接続されたパーティーが一定期間後に正しく応答しなかったか、接続されたホストが応答できなかったため接続が失敗したため、接続できませんでした。私は、クライアントが現在どのサーバに到達するかを知っていることはかなり確信しています。サーバーからどのような応答が期待されますか? – Maydayfluffy
@Maydayfluffy Hmm。これらのリンクから送信したコードを変更しましたか?これは、いくつかの異なることによって引き起こされる可能性があります。サーバがIPAddress ipAddress = ipHostInfo.AddressList [0];ここで取得したIPAddressを出力し、IPv4と異なる場合はそれを試してみてください。また、クライアントとサーバーの両方が同じポートに接続するように設定されていることを確認してください。それ以外にも、ファイアウォールの問題になる可能性があります。ポートが何か他のものによって使用されている可能性があります。そうしないと、ファイアウォールの設定によってポート上の接続がブロックされている可能 –
ありがとうございます!それはファイアウォール問題になった。それを無効にするとすべてが機能しました。 – Maydayfluffy
- 1. TCPクライアント接続
- 2. ESP8266 TCPクライアントでTCP接続を永続的に維持する
- 3. TCPクライアント接続スクリプト
- 4. サーバーからクライアントへのJava TCP接続
- 5. TLS 1.2を使用してTCPサーバにクライアントを接続する
- 6. TCPクライアントに接続するElixir
- 7. LinuxのTCPクライアント/サーバ
- 8. JAVA TCPクライアント - サーバー接続
- 9. 「接続リセットによるピア」Indy TCPクライアント
- 10. クライアント(アンドロイド)からローカルホストのtcpサーバに接続できませんか?
- 11. javaクライアントとTCP接続を介してC++サーバとの通信
- 12. AndroidクライアントからTCPプロトコルに接続する
- 13. サーバへのtcp接続の自動化
- 14. TCPクライアントがTCPサーバーに接続できません
- 15. TCPサーバのみ1クライアント
- 16. TCP/IPクライアント接続の問題
- 17. NETCAT TCPサーバ/クライアント接続が開いていない
- 18. 別のデバイスに接続するには?
- 19. PHP TCPソケット接続制限 - Windowsサーバ
- 20. JavaゲームサーバーからクライアントへのTCPとUDPの接続
- 21. TCPクライアント/サーバを使用するプロデューサ/コンシューマ
- 22. マルチスレッドTCPサーバすべてのクライアントにエコーバック
- 23. クライアントに知らせる間にサーバー側からTCP接続を閉じる
- 24. 非同期TCPクライアント接続でハングアップ
- 25. リモート接続によるTCP
- 26. Java - TCPサーバがTCPクライアントから読み取ることができません
- 27. タイムアウトのあるTCPサーバー/クライアント
- 28. TCP接続プール
- 29. Java - TCP接続
- 30. TCP接続
サーバが持つルーティング可能なIPアドレス。見つけられない場合は、サーバ上でコマンドプロンプトを開き、 'ipconfig'と入力してEnterキーを押します。ネットワークに慣れていない場合は、ファイアウォールが使用しているポートであれば、ファイアウォールが要求をブロックしていないことを確認するために、ファイアウォールの設定についても学びたいと思うでしょう。 – itsme86
ipconfigの「ルーティング可能なIPアドレス」とは何ですか? IPv4、IPv6、サブネットマスク、およびデフォルトゲートウェイがあります... – Maydayfluffy
クライアントがどのIPアドレスに到達できるか。おそらくIPv4アドレス。デバイスには1つのネットワークインターフェイスしかありませんか?通常は少なくともループバックもあります。ちょっとしたネットワークインターフェイス101のトレーニングをうまくやっているようです。このことについて読む。それについてのインターネットにはたくさんの資料があります。すべての一般的な理論であり、SOの質問には適していません。 – itsme86