2017-05-19 3 views
0

私はpythonソケットを学んでいます。パブリックIPを持つサーバーを使用している場合、コンピュータとサーバーはTCPを使用して簡単に接続できます。しかし、異なるLANにある2台のコンピュータにパブリックIPがない場合、どうすればそれらを接続できますか?パブリックIPを持たない2台のコンピュータ間でcconnectionを構築する方法

+0

(TURNサーバーなど)のパブリックIPをサーバーにフォールバックする必要があり、それが動作しない場合は? – GeneCode

+0

私はネットワークソフトウェアを開発しているので、TCPのようなネットワークプログラミングを使用して接続する必要があります。 –

+0

その後、サーバーをクラウドでホストし、そのIPを使用します。 – Enzokie

答えて

1

簡単な答えは、「NATトラバーサル技術を使用する」です。

長い答えです。ここ

主要な問題は、以下のとおりです。

  • あなたは本当にIPアドレスを接続するために何を知っていない接続を確立するとき。
  • NATは期待通りに動作しません(アドレス変換のバインドを閉じ、予期しないアドレスから送信されたパケットなどを受け付けません)。

最初の問題は、パブリックIPアドレスを返すことができる、いわゆるSTUNサーバーで解決できます。

第2の問題は、より複雑で一般的にパブリックIPアドレスを使用するサーバーがなければ解決できません。 「Interactive Connectivity Establishment」の仕様を見ると、VOIPシステムでこの問題がどのように解決されたかの例を見ることができます。短い言葉で

あなたはSTUNプロトコルによって得たパブリックアドレスを使用しようとすることはできますが、多分bluetoothの

関連する問題