Ответ 1
Попробуйте использовать IP-адрес 10.0.2.2.
Это специальный псевдоним вашего интерфейса loop loopback (т.е. 127.0.0.1 на вашей машине разработки)
Я не могу связаться с Android-сервером на эмуляторе из программы на своем рабочем столе, как ее решить?
Некоторый код (из Как найти IP-адрес локальной сети Android-устройства?):
public static ArrayList<String> getSelfIP(){
try {
ArrayList<String> ipList = new ArrayList<>();
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
ipList.add(inetAddress.getHostAddress().toString());
}
}
}
return ipList;
} catch (SocketException ex) {}
return null;
}
Результат [fe80::5054:ff:fe12:3456%eth0, 10.0.2.15]
Что мне нужно настроить или сделать, чтобы сделать эмулятор доступным для моих настольных программ?
Я сделал следующее:
> adb forward tcp:50000 tcp:50000
Однако я не могу получить доступ к серверу через localhost: 50000.
Попробуйте использовать IP-адрес 10.0.2.2.
Это специальный псевдоним вашего интерфейса loop loopback (т.е. 127.0.0.1 на вашей машине разработки)
Взгляните на эту документацию по Android, раздел "Использование перенаправления сети".
Настройка перенаправления через консоль эмулятора
Каждый экземпляр эмулятора предоставляет консоль управления, к которой вы можете подключиться to, для выдачи команд, специфичных для этого экземпляра. Вы можете использовать команда redir console для настройки перенаправления, когда это необходимо для экземпляр эмулятора.
Сначала определите номер порта консоли для целевого эмулятора пример. Например, номер порта консоли для первого эмулятора экземпляр запущен - 5554. Затем подключитесь к консоли цели экземпляр эмулятора, указав его номер порта консоли, следующим образом:
telnet localhost 5554
После подключения используйте команду redir для работы с перенаправлением. Чтобы добавить перенаправление, используйте:
add <protocol>:<host-port>:<guest-port>
где
<protocol>
либо tcp или udp, а<host-port>
и<guest-port>
задает сопоставление между вашим собственной машины и эмулируемой системы, соответственно.Например, следующая команда устанавливает перенаправление, которое обрабатывает все входящие TCP-подключения к вашей машине (разработке) на 127.0.0.1:5000 и передаст их в эмулированную систему 10.0.2.15:6000:
redir add tcp:5000:6000
В вашем случае последней командой будет
redir add tcp:5000:5000
У меня была эта проблема один раз, используйте 10.0.2.2 IP-адрес, который должен решить вашу проблему.