2012-03-05 8 views
0

私はモバイルチャットアプリケーションを実装しています。私はP2P接続を実装するためにソケット接続を使用しています。私のチャットはAndroid搭載端末でうまくいきます。私の問題は、3gネットワークまたは同じWiFiネットワーク内のデバイスを接続できますが、WiFi外のデバイスフォームがWiFiネットワーク内のデバイスに接続しようとすると、接続が機能しないことです。私はそれがWiFiによって割り当てられたデバイスのローカルIPのためだと知っています。 WiFiでデバイスをルートにして接続するにはどうすればよいですか?ソケットプログラミングWiFiの問題

答えて

0

ルータ設定の問題のように聞こえるのは、アプリの問題(つまり、自分のアプリのユーザーが自分のネットワークでも同じことをする必要があるということです)です。

Wi-Fiルーターは、デバイスに通信を転送する方法を知る必要があります。あなたのアプリがポート1234で接続しているとしたら、ルータに、ポート1234の外部からWi-Fiネットワーク内の携帯電話の内部IPへの通信を転送するように指示する必要があります。

ネットワークの外部IPとポート1234

0

Sajanを対象とするネットワークの外にある電話は、あなたの問題は、IPマッピングの問題が、また、NATトラバーサルの問題だけではありません。 NATに穴を開けることは必ずしも可能ではありません。そしてそれがそうであるとき、それはあなたの内側の同輩から翻訳されたアドレスを読むwifi/lanの外に位置するスーパーピアを含むいくつかの洗練された技術で行わなければなりません。

UDPを使用していてNATが使いやすい場合を除き、TCP通信を内部ピアに直接送信することはできません。ほとんどの場合、NATで可能なことを確認する必要があります。可能なことがあれば、予測予測を実行し、両方のピアに予測IPアドレスを試してみる必要があります。

これは、ユーザがNATを設定する必要がない場合に有効です。その場合でも、そのような構成では必ずしも十分ではありません(たとえば、NATのカスケードやプロキシなどがある場合)。

関連する問題