Подтвердить что ты не робот

Доступ к dev машине localhost через usb

Моя активность должна связываться с java-сервером, расположенным на моей машине dev. Фактически, используя эмулятор, я могу получить доступ к сокету сервера через специальный адрес 10.0.2.2. Теперь я хотел бы протестировать мое приложение на моем телефоне, подключенном через usb, но похоже, что я не могу использовать 10.0.2.2 для доступа к моему dev machine localhost больше. Естественно, использование Wi-Fi-маршрутизатора и правильная локальная адресация делают трюк, но вместо этого мне нужно использовать USB-соединение. Любой намек?

изменить:
Просто добавили разные сценарии, чтобы все понимали лучше:

1. Эмуляторный сценарий:

  • стандартный java-сервер, работающий на моем компьютере @localhost: 15000
  • Клиент iroid java работает на моем эмуляторе.

Когда приложение android должно связаться с сервером, оно использует 10.0.2.2:15000, как указано здесь. Все работает нормально.

2. Правильный сценарий Wi-Fi с подключенным физическим устройством:

  • стандартный java-сервер, запущенный на моем компьютере @192.168.1.10: 15000.
  • клиент javascript для Android, работающий на моем устройстве с назначенным адресом 192.168.1.11.

Когда приложение андроида должно связаться с сервером, оно использует 192.168.1.10:15000, и все работает отлично.

3. Желаемый сценарий:

  • стандартный java-сервер, запущенный на моем компьютере @localhost: 15000.
  • клиент javascript для Android, работающий на моем устройстве, подключенном через USB-кабель. Сеть не активна.

Когда приложение android должно связаться с сервером, оно пытается подключиться к 10.0.2.2:15000, но вместо этого генерируется исключение (Network unreachable). Кажется, что специальный адрес 10.0.2.2 работает только для экземпляров эмулятора.

Мне просто интересно, есть ли в пакете adb/adt доступ к адресу pc с устройства, подключенного через USB-кабель. Надеюсь, теперь это станет более ясным. Спасибо.

4b9b3361

Ответ 1

Кажется, не существует способа, позволяющего сценарию № 3 работать должным образом, потому что соединение usb не является реальным сетевым подключением, и нет телефона, связанного с ним по телефону.

На самом деле мое решение заключается в использовании специального соединения wifi между моим телефоном и моим компьютером. Этот сценарий похож на №2, но без маршрутизатора или dhcp. К сожалению, мой Герой не может обрабатывать специальные соединения из-за этот вопрос. Поэтому я должен был запустить мое устройство и вручную изменить конфигурацию script. Я надеюсь, что такие функции могут быть доступны в следующих версиях.

Ответ 2

Вы можете настроить подключение к вашему телефону через USB с вашего компьютера, но вы должны adb forward. Тем не менее, я не думаю, что вы можете маршрутизировать по-другому через usb: настройка соединения с телефоном на ПК.

Вы могли бы подключить свой компьютер к телефону и проверить, какой IP-адрес он имеет.

Подумав об этом, я понял: используя adb forward, вы должны использовать localhost в качестве своего хоста, поэтому, возможно, вы также можете сделать это на своем телефоне: adb forward порт, который вы хотите использовать, и на своем телефоне, подключитесь к этому порту на локальном хосте.