環境
- macOS Sierra 10.12.6
- AVD(Android Virtual Device)
- Emulator : Nexus_6_API_27
- AndroidOS : 8.1.0
- API : 27
困ったこと
アンドロイドエミュレーター(以下AVD)から、AVDを動かしているホストPC上で立ち上げたサーバーにhttp接続しようとすると以下のエラーが発生する。
java.net.ConnectException: Failed to connect to xxx
解決策
-
php -S 127.0.0.1:8000/
でphpのビルトインサーバーを起動 - Androidからは、
http://10.0.2.2:8000/xxx
で接続する。
- AVDでは、ホストPCへのネットワーク接続は
10.0.2.2
のIPで割当てられているみたい。-
10.0.2.2
はあくまでエイリアスとしてのIP。 - ホストPCに実際に割り当てられているIPでも、もちろんつながる。
-
- Virtualbox上から、ホストPCに接続するときもこのIPだった気がする。
-
why do we use 10.0.2.2 to connect to local web server instead of using computer ip address in android client
- The reason why you use 10.0.2.2 is because it's the special alias to your host loopback interface (aka 127.0.0.1).(ANSWER 抜粋)
-
why do we use 10.0.2.2 to connect to local web server instead of using computer ip address in android client