Android エミュレーターを使用してラップトップの Web サーバーにアクセスでき、10.0.2.2:portno
問題なく動作しています。
しかし、実際の Android スマートフォンを接続すると、スマートフォンのブラウザはラップトップ上の同じ Web サーバーに接続できません。スマートフォンは USB ケーブルを使用してラップトップに接続されています。adb devices コマンドを実行すると、スマートフォンが表示されます。
何が足りないのでしょうか?
ベストアンサー1
USB はモバイル デバイスにネットワークを提供しません。
デスクトップと携帯電話の両方が同じ WiFi (またはその他のローカル ネットワーク) に接続されている場合は、ルーターによって割り当てられたデスクトップの IP アドレスを使用します ( や でlocalhost
はありません127.0.0.1
)。
デスクトップの IP アドレスを確認するには:
- コマンドライン
ipconfig
(Windows)またはifconfig
(Unix) に入力する- Linuxではワンライナーは
ifconfig | grep "inet " | grep -v 127.0.0.1
重要な部分だけを出力する - ありますたくさんの提案Windowsで同様の出力を得る方法について
- Linuxではワンライナーは
- たくさんのIPが存在します
- すべて試してみてください(前述の
localhost
とを除く127.0.0.1
)
携帯電話がモバイルネットワークに接続されている場合、状況はさらに難しくなります。
ハードコアに行くか:
- まずルーターの外部IPアドレスを調べます(https://www.google.de/search?q=myip)
- 次に、ルーターでポートを転送します
<your desktop IP>:<server port number>
- 最後に外部IPアドレスと転送ポートを使用する
それ以外の場合は、次のようにします退屈させる、翻訳、 またはングロク。こちらはngrok のオープンソース代替品のリスト。
注意: このifconfig
コマンドは非推奨になっており、Debian Stretch 以降の Debian Linux ではデフォルトで使用できません。Debian Linux でネットワーク構成を調べるための新しい推奨代替手段は、ip コマンドです。たとえば、ip コマンドを使用してネットワーク構成を表示するには、次のコマンドを実行します。
ip address
上記の ip コマンドは次のように省略できます。
ip a
それでもifconfig
日常のシステム管理ルーチンの一部として使用したい場合は、パッケージの一部として簡単にインストールできますnet-tools
。
apt-get install net-tools
参照はここ