私はインターネットからのTCP接続を受け入れるためにAndroidアプリを書こうとしています。シンプルに聞こえますが、何週間も頭が鳴っているにもかかわらず、私は解決策を見つけず、今は不可能だと信じています。私は誰かに私が間違っていると言ってもらいたいです。インターネットからAndroid TCPサーバーアプリケーションに接続する(ルーターなし):不可能ですか?
「ServerSocket()」API関数を使用することをお勧めします。待機中のソケット(ポート2000など)を作成し、デバイス内の別のアプリから接続することができました。残念ながら、私はそれがインターネットからは見えない(unrouteable)ローカルアドレス10.0.0.150にバインドされていることがわかります。
自分のデバイスをローカルのWIFIルータに接続し、ルータの「ポート転送」機能を使用して、MyPublicIp:2000〜10.0.0.150:2000への着信接続を中継することで、正常に接続できました。しかし、これは私がルータを持っていない分野(LTE接続以上)では使えません。
私はStackOverflowや他のサイトを検索しましたが、良い答えは見つかりませんでした(しかし、適用できないものや鈍いものがたくさんあります)。
私の読んだところ、ほとんどの(すべての)キャリアは、着信接続をユーザーデバイスにルーティングすることができないと聞きましたが、これは私のジレンマを説明するかもしれません。
お願い:誰かが私に間違っていると教えてください。
私のデバイスのIPアドレスを取得することは、この問題のほんの一部です。私はデバイスの公衆(DHCP)IPアドレスをさまざまな方法で見つけることができますが、私の質問のように問題が原因で接続できません。どのキャリアを使用していますか? – DontPanic