C# сбой клиента сервера при подключении UWP (2) - PullRequest
0 голосов
/ 23 февраля 2020

У меня проблема с подключением моего Windows 10 P C к Raspberry Pi с Windows 10 IoT (17763, который, кажется, самый последний) через TCP. RPI должен быть сервером, а Windows 10 P C клиентом.

Я обнаружил следующую документацию Socket: https://docs.microsoft.com/de-de/windows/uwp/networking/sockets, которая обеспечивает хорошо понятный пример UWP. Этот пример запускает сервер и клиент только в одном приложении. Причина:

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

Эти примеры отлично работают либо на P C, либо на RPI. Я попробовал это: а) используя «localhost» и б) отдельные IP-адреса P C и RPI => OK.

Я разбил пример на два приложения и запустил сервер на RPI и клиент на П C. Конечно, я добавил IP-адрес RPI в клиенте

static string Server = "192.168.178.78";    // Raspberry PI
...
var hostName = new Windows.Networking.HostName(Server);

К сожалению, соединение не установлено и время ожидания клиента (ошибка 0x8007274 C).

In Wireshark (на P C) я вижу:

No.     Time           Source                Destination           Protocol Length Info
    320 34.221418      192.168.178.38        192.168.178.78        TCP      66     50198 → 1337 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1

плюс ряд повторных передач. Поскольку соединение не работает, я выключил брандмауэр на P C. Это тоже не поможет. Хотя настройки порта не должны иметь значения, я открыл TCP-порт 1337 на своем маршрутизаторе.

В следующем потоке возникла та же проблема, но это было связано с запуском обоих приложений на одной машине. Как только Свен отделил клиента и сервер от мобильного телефона P C <->, он сработал для него.

C# Сбой клиента сервера при подключении UWP

I сделал сеанс отладки CheckNetIsolation.exe для клиента и сервера. Оба дали следующий результат (Примечание: здесь указан только один сеанс):

C:\WINDOWS\system32>CheckNetIsolation.exe Debug -p=S-1-15-2-1267940166-3928243817-861952377-2407264183-3106597897-3574865703-2117263357

Eine Netzwerkisolations-Debugsitzung wurde gestartet.
Reproduzieren Sie das Szenario, und drücken Sie dann STRG+C.
      Protokolle werden gesammelt........

Zusammenfassungsbericht

Status der Netzwerkfunktionen
----------------------------------------------------------------------
    InternetClient                Not Used and Insecure
    PrivateNetworkClientServer    Not Used and Insecure


Detaillierter Datenverkehrsbericht
----------------------------------------------------------------------

    InternetClient                Not Used and Insecure

 ------------------------------------------------------------------


    PrivateNetworkClientServer    Not Used and Insecure

 ------------------------------------------------------------------
OK

Есть идеи? Я был бы очень признателен за предложения по решению этой проблемы.

1 Ответ

0 голосов
/ 24 февраля 2020

См. Комментарий Майкла Хуса. Порт на Raspberry Pi должен был быть открыт

netsh advfirewall firewall add rule name="pidart port 1337" dir=in action=allow protocol=TCP localport=1337

Это решило проблему

...