2017-02-07 2 views
0

Я пишу приложение Xamarin Forms, и мне нужно обмениваться данными с ним, работающим на ОС хоста (Windows).Как мне связаться с эмулятором Android

Пробовал использовать сокеты для отправки UDP-пакетов из эмулятора Windows в Android, но приложение Xamarin Forms не получает никаких данных.

Какова сетевая конфигурация между эмулятором и Windows? Есть ли другой способ общения?

+1

Какой эмулятор вы используете? – Cheesebaron

+0

Тот, который поставляется с инструментами Xamarin SDK для Visual Studio. В строке заголовка говорится: «Android-эмулятор - Android_Accelerated_x86: 5554» – ionoy

+0

Если оба пользователя находятся в одной сети (и они должны быть), вы можете использовать IP-адрес для связи –

ответ

0

Я нашел решение. В принципе, у эмулятора Android нет своего собственного сетевого интерфейса, поэтому вам нужно использовать adb для пересылки необходимых портов.

Для пересылки TCP-порт для эмулятора, используйте:

adb forward tcp:sourceport tcp:destport

Например, чтобы направить порт 8000 на хост к порту 8500 на эмуляторе, использование:

adb forward tcp:8000 tcp:8500

Чтобы перенаправить UDP-порт, telnet на порт эмулятора (обычно 5554), а затем использовать redir:

telnet localhost 5554 
redir add udp:sourceport:destport 

Как описано здесь: http://www.iomem.com/archives/23-Redirecting-TCP-and-UDP-traffic-to-the-Android-emulator.html

0

Из названия эмулятора это не похоже на эмулятор VS, но я могу ошибаться.

Если вы используете эмулятор VS, вы можете узнать его IP-адрес и IP-адрес вашего рабочего стола, как показано на рисунке. Здесь эмулятор обращается к веб-странице на хост-Windows, что доказывает, что они могут общаться.

enter image description here

+0

Похоже, что это отличный эмулятор. Вот скриншот http://i.imgur.com/78yyJgT.png – ionoy

+0

Я вижу IP-адрес 10.0.2.15. Каков адрес вашего настольного ПК? –

+0

192.168.0.102. Но кажется, что «10.0.2.15» на самом деле не существует в физической сети, это поддельный адрес внутри эмулятора. Когда эмулятор делает запрос, он исходит из моего локального IP-адреса и некоторого случайного порта. – ionoy

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