эмуляторы соединения по протоколу TCP - PullRequest
2 голосов
/ 08 апреля 2011

хи снова!Я пытаюсь подключить два эмулятора, работающих как сервер и клиент, на одном компьютере. Дело в том, что один из них находится внутри виртуальной машины. Какие адреса я должен использовать для каждого из эмуляторов, чтобы соединиться между ними?Я использую соединение на основе TCP!Первый эмулятор работает на Windows 7 Второй на Vmware работает на Xp IP моего компьютера в сети - 192.168.71.1 Очень благодарен, если вы ответите. Спасибо !!

Ответы [ 2 ]

3 голосов
/ 08 апреля 2011

Несколько дополнительных деталей помогут:

  • Какой IP-адрес у виртуальной машины?
  • Используется ли NAT, мостовая сеть или как?
  • Вам действительно нужно запустить второй эмулятор внутри виртуальной машины - это усложняет работу в сети.

ОБНОВЛЕНИЕ: несколько эмуляторов на 1 машине (без ВМ) Вы можете запустить другой эмулятор из командной строки, используя / emulator -avd. Вам нужно будет создать второй AVD, чтобы это работало. Я использую Linux, поэтому не могу дать точную информацию о Windows.

ОБНОВЛЕНИЕ: Связь между основным компьютером и виртуальной машиной с эмулятором Android Я полагаю, что эмулятор слушает только 127.0.0.1 для серверных сокетов, поэтому удаленные машины не могут подключиться - это, конечно, случай для отладочных сокетов, которые он использует. Однако вы можете настроить переадресацию портов, используя аналогичный метод, описанный в Удаленная отладка с эмулятором Android

Хорошо, что вы используете мостовую сеть, поскольку NAT остановит виртуальную машину при получении входящих соединений, поэтому у эмулятора не будет никакой надежды.

ОБНОВЛЕНИЕ № 2: Переадресация портов Вы можете настроить переадресацию портов между сокетами на локальном компьютере и на эмуляторе, используя adb forward . Возможно, стоит взглянуть на Связь между эмуляторами Android , возможно, существует недокументированный переключатель эмулятора -shared-net-id, который может помочь.

Надеюсь, это поможет

Фил Лелло

3 голосов
/ 08 апреля 2011

Я полагаю, вы хотите использовать адрес локального хоста (127.0.0.1). Настройте сервер на прослушивание, и после того, как он будет запущен и работает, подключите клиент, и вы должны быть готовы к работе. (Убедитесь, что порт, который вы используете, очевидно совпадает.)

http://en.wikipedia.org/wiki/Localhost

...