2012-04-04 3 views
0

У меня есть клиентское и серверное приложение на Android (которое использует платформу ZeroC-Ice для связи). Сервер прослушивает TCP-порт 10000, а клиент использует порт TCP 5501 (произвольные номера портов, которые я выбрал).Используйте adb forward вместо redir

Когда я подключился к серверу и запустил redir add tcp:5501 tcp:10000, он работает плавно.

Однако из-за моей текущей настройки системы (с использованием бинарного файла androidx86 через виртуальную машину) я больше не могу подключаться к серверу. Поэтому я надеялся, что вместо этого смогу использовать adb forward. Однако, какую бы комбинацию портов я ни пытался, я не мог заставить ее работать.

Я был бы очень признателен, если бы кто-то мог пролить свет на них: - Возможно ли использовать telnet для репликации устройства или устройства? Я прочитал в другом сообщении о stackoverflow, что telnet-интерфейс доступен только для эмулятора - В чем разница между redir и adb forward? Как использовать переадресацию adb для достижения redir tcp:A:B на сервере?

Thanks

ответ

0

Мне, наконец, удалось заставить его работать. Несколько комментариев

  • Устройства, подключенные через USB, не могут быть достигнуты через ethernet. Они могут быть достигнуты через беспроводную сеть (при условии, что они подключены к той же сети с другой стороной)
  • VirtualBox имеет свою собственную переадресацию NAT. Без переадресации портов, в соответствии с сетевой конфигурацией по умолчанию (которая является NAT), виртуальное устройство недоступно.

Моя рабочая установка следующим

  • Устройство USB подключенного подключается к компьютеру с помощью беспроводной связи (Выясните локальный IP-адрес вашего компьютера, который часто что-то вроде 192.168.1.x)
  • Я включил переадресацию VirtualBox для NAT. Мой параметр: TCP 10000: 10000 (где 10000 - номер произвольного порта. Обратите внимание, что он должен быть выше 1024). Поэтому, когда мое устройство, подключенное к USB-порту, подключается к ПК на порту 10000, оно пересылается виртуальному устройству через пересылку VirtualBox ,
  • Виртуальное устройство прослушивает TCP порт 10000. (я не указать адрес хоста, чтобы сделать жизнь проще)
  • Если вы получаете исключение «NetworkOnMainThread», используйте

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
    

Надежда это помогает кому-то

Смежные вопросы