0

現在ホームサーバーと通信するアンドロイドアプリを開発中です。このアプリケーションの目的は、サーバーと通信して、サーバー上にある名前のリストを表示することです。これは、私の電話が私の家の無線LANに接続されているときにすべて正常に動作しますが、私はモバイルネットワークに切り替えるか、別の無線LANの場所に移動すると、アプリケーションは名前を表示することはできません。私はこのような文字列に私のデフォルトゲートウェイを追加してみましたAndroid:ホームワイファイ以外のホームサーバーに接続

String server_url = "http://my home server ipv4 address/getarrayinfo.php"; 

:私のコードでは、私はこのような私のホームサーバーへのIPv4アドレスを格納する文字列を使用しています

String server_url = "http://my default gateway address/my home server ipv4 address/getarrayinfo.php"; 

しかし、これはやりましたうまくいかない。私はここで何が欠けていますか?

P.S.私はネットワークを介して通信するためにアンドロイドボレーを使用しています。

+0

ネットワークインフラストラクチャがオフトピックであるため、このサイトで情報を見つけることはできません – pedrofb

答えて

2

これは実際にはこの質問の正しい場所ではありません。これは、Androidとはまったく関係がなく、ネットワーキングに関するものです。

あなたが提供した少量の情報の中で、私はあなたがネットワークの外から間違ったIPを打っていると推測しています。あなたの「私のホームサーバーのIPv4アドレス」を指すようにルーターのポートを開く必要があり

  1. は(あなたがポート#2345を選択し、ホームサーバーのIPが192.168.0.100であるふりをすることができます)。これはかなりシンプルで、ルータに応じて192.168.0.1または10.0.0.1で設定できます。 TCPポート2345を192.168.0.100に設定します。

  2. ホームネットワークのIPアドレスを確認します。 http://www.whatsmyip.org/に行くと簡単に見つけることができます。IPが12.23.45.56

  3. であることを示すふりをしましょう。ネットワークの外部にあるデバイスを12.23.45.56:2345に設定すると、ルータは次の通信を認識します。そのポートはローカルアドレス192.168.0.100に転送する必要があります。ルータが再起動するたびに、それが何かを得るだろうことを意味し - だから、今

String server_url = "http://12.23.45.56:2345/getarrayinfo.php";

にセットアップあなたのSERVER_URLを私はまた、ホームネットワークは、おそらく、静的IPアドレスを持っていないことを言及したかったです新しいものは12.23.45.56ではないので、ルータを再起動するとコードを更新する必要があります。これを避けるには、ISPに月額10ドルを払い、自宅に静的IPを割り当てるようにします。

+0

または自分でドメイン名を取得してから、ダイナミックDNSを使用してドメイン名が常に正しいIPアドレスにバインドされるようにしてください。 – xwz7611