Как я могу диагностировать ошибку WSAECONNREFUSED в Windows CE? - PullRequest
0 голосов
/ 23 июня 2011

У меня есть устройство Dell Axim Windows CE (Windows Mobile 5.0 OS 5.1.1702 Build 14366.1.0.1), подключенное к ноутбуку Dell Latitude E6500.Мое приложение C ++ работает на устройстве CE и прослушивает TCP-соединения через порт 80. Программа пытается установить соединение с собой по адресу 169.254.2.1:80 и получает код ошибки WSAECONNREFUSED (10061).Обычно это означает, что никто не слушает этот порт.Если я изменю адрес на 127.0.0.1:80, соединение установится успешно.

Вот странная часть.Если я отключу устройство от этого ноутбука и подключу его к Dell Latitude D830, все будет работать правильно.Адрес 169.254.2.1 такой же, но соединение с ним успешно.Обратите внимание, что это приложение работает на устройстве CE , которое подключается к себе , не подключается к ноутбуку, и при этом оно не подключается к приложению на устройстве.Мы подтвердили это на нескольких разных машинах - все E6500 показывают проблему, больше ничего не делает.

Я не понимаю, как к какому компьютеру подключено устройство, влияет на внутренние соединения TCP.Есть идеи?

1 Ответ

3 голосов
/ 23 июня 2011

Сначала я должен спросить, почему вы используете 169.254.2.1 для подключения к себе.Этот IP-адрес является адресом, назначенным ActiveSync, и он не гарантированно является статическим (он действительно один раз менялся в прошлом, когда драйвер перешел с USB-интерфейса на RNDIS), поэтому его использование рискованно.Вы хотите обратиться к себе, используйте стандартный адрес обратной связи, такой как 127.0.0.1.Если вы хотите обратиться к партнеру по ActiveSync, разрешите имя хоста ppp_peer, и пусть это даст вам фактический адрес.

Я предполагаю, что источник поведения заключается в том, что при подключении к ПКЛокальная «ЛВС» построена с двумя узлами (устройство и ПК).Эта ЛВС, как правило, не является «полной» сетью (например, пакеты ICMP не передаются), и это, вероятно, зависит от драйвера, загруженного хост-ПК.Это чисто предположение, конечно.

Как я уже сказал, я хотел бы узнать больше о том, почему вы используете адрес, который вы хотите узнать, сможем ли мы "исправить" проблему, выполнив что-то, что в целом немного безопаснее.

...