Подключитесь к подключенному компьютеру из WP7, открыв сокет для localhost - PullRequest
0 голосов
/ 31 марта 2011

При разработке и тестировании приложений WP7 ваш компьютер подключается либо к реальному телефону WP7, либо к эмулятору устройств WP7.Для конкретной цели разработки я хотел бы подключиться напрямую к ПК разработчика (назовем его хост-ПК) из приложения WP7 без необходимости полагаться на внешний сервер toast.Я использую обычные сокеты, System.Net.Sockets.Socket.

Кажется, есть два варианта:

  1. Получить IP-адрес хост-компьютера и подключиться к нему
  2. Подключение к локальному хосту

Вариант 1 обычно работает хорошо, но не всегда: хост-компьютер может не обязательно иметь IP-адрес, и в этом случае подключать нечего.Кроме того, в некоторых сценариях весь трафик локальной сети направляется через прокси-сервер всей компании, который нарушает этот механизм.

Это побудило меня попробовать вариант 2. К моему удивлению, это работает, но мне нужновернее, чем просто «это похоже на работу».Я все погуглил, но не могу найти однозначного ответа, даже на сайте Microsoft, например, http://msdn.microsoft.com/en-us/library/ff754351(v=VS.92).aspx. Так вот мой вопрос:

Что такое определенное поведение при подключении к localhostиз приложения WP7?
Альтернативно, есть ли надежный способ подключения обратно к хост-компьютеру?

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

Редактировать: Я работаю в EQATEC, и рассматриваемое приложение - это EQATEC Profiler.В настоящее время связь между профилировщиком и приложением осуществляется путем внедрения сокетного / http-клиента в развернутое приложение WP7, которое подключается обратно к IP-адресу локальной сети профилировщика.Он работает очень хорошо и очень быстро, но в некоторых очень редких случаях пользователи находятся в автономном режиме, и поэтому не имеет IP , или имеют некоторые запрещающие правила сетевого прокси .
Поэтому подключение к «localhost» было бы прекрасно, если бы это каким-то волшебным образом всегда работало для всех.Он работает для меня и пары тестовых пользователей, но работает ли он для всех наших многих тысяч пользователей профилировщиков по всему миру?Я хотел бы быть более уверенным.

Ответы [ 3 ]

1 голос
/ 31 марта 2011

«localhost» по определению - это машина, на которой выполняется код (в частности, NIC, осуществляющий связь). Для телефона или эмулятора это будет означать телефон или эмулятор, , а не ПК, к которому они подключены.

Когда вы подключаетесь к ПК, у вас есть сеть - это соединение RNDIS, в котором обе стороны получают IP-адрес, который традиционно (до WP7) можно было разрешить с помощью «ppp-peer», хотя я не проверил это разрешение на телефоне. Я подозреваю, что это будет то же самое, поскольку WMDC по-прежнему подключается, и у них не было особых оснований для изменения этого механизма подключения.

Если эмулятор разрешает локальный хост на ПК, на котором он находится, это явная ошибка, и я не буду рассчитывать на то, что он продолжит работать, поскольку они добавляют более надежную поддержку сокетов для платформы Phone.

0 голосов
/ 04 февраля 2012

IP-адрес, который вы ищете, это «192.168.55.100»

Это IP-адрес, который телефон использует для подключения к хост-компьютеру.

Если вы хотите подключиться ктелефон, по-видимому, его IP-адрес будет "192.168.55.101"

Для эмулятора просто используйте localhost или 127.0.0.1

Это из старых дней ActiveSync, поэтому я не знаюнасколько это официально или насколько вероятно, что оно продлится, но сейчас, по крайней мере, это сработало на моем телефоне.

0 голосов
/ 31 марта 2011

System.Net.Sockets.Socket на самом деле в настоящее время недоступно для программирования WP7, но может быть доступно в будущем (возможно, в Манго ... может быть ...)

AFAIK, единственный способ надежно сделать то, что вы хотите сделать, это настроить http-сервер на ПК разработчика и предоставить вашему приложению HTTP-адрес этого сервера - или направить сообщения через некоторый «облачный прокси»

Я удивлен, что localhost вообще работает на реальном устройстве ... Я могу только предположить, что они просят подключенный ПК разрешить это DNS-имя - но даже тогда я удивлен, что 127.0.0.1 работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...