これが私が何日も働いている/探しているどこかに投稿されている場合は申し訳ありません。
問題:
ピアツーピアネットワークを介してAndroidデバイスと通信しているときにSocketTimeoutExceptionsが発生します。
詳細:
これが発生した場合、Androidデバイスはwifiではなく独自のモバイルネットワークを使用します(wifiはとにかくこれで動作するように設計されていません)。
Androidデバイスはwhatismyip.comからipAddressを正常に取得します。
一方のデバイスは、使用しているピアツーピアネットワーク以外の手段を介してもう一方のIPアドレスを送信します。
リモートデバイスのIPアドレスがローカルデバイスに正常に送信されます。
ローカルデバイスがピアツーピアネットワークを介して応答すると、TimeoutExceptionが発生します。
私が試したこと:
タイムアウトを非常に長い期間に延長します。
他のAndroidデバイスを使用する。
注目すべき:
この同じピアツーピアネットワークは、ローカルエリアネットワーク上のPC(重要な場合はLinuxとWindowsを実行している)間で正常に動作することがテストされていることに注意してください。また、PCの有線インターネット接続を介してピアツーピアネットワークをテストしたところ、間違いなく機能します。
私の推測:
デバイスがISPによって隠されていると思っているので、NATトラバーサルと同様のことを行うためにコードを作成する必要がありますが、よくわかりません。しかし、デバイスが非表示になっている場合は、接続拒否の例外が発生するはずです。
どんな助けでも大歓迎です。
PS現在、コードを投稿することはできません。たとえできたとしても、プロセス全体で数千行のコードになります。