У меня возникла проблема с подключением моего ПК с Windows 10 к Raspberry Pi под управлением Windows 10 IoT (17763, которая кажется самой последней) через TCP. RPI должен быть сервером, а ПК с Windows 10 — клиентом.
Я нашел следующую документацию по Socket: https://docs.microsoft.com/de-de/windows/uwp/networking/sockets, который представляет собой хорошо понятный пример UWP. В этом примере сервер и клиент запускаются только в одном приложении. Рассуждение:
Чтобы начать с как можно меньшего количества движущихся частей — и пока обойти проблемы изоляции сети — создайте новый проект и поместите клиентский и серверный код ниже в один и тот же проект.
Эти примеры отлично работают как на ПК, так и на RPI. Я попробовал это: а) используя «localhost» и б) отдельные IP-адреса ПК и RPI => OK.
Я разделил пример на два приложения и запустил сервер на RPI, а клиент на ПК. Конечно, я добавил IP-адрес RPI в клиенте
static string Server = "192.168.178.78"; // Raspberry PI
...
var hostName = new Windows.Networking.HostName(Server);
К сожалению, соединение не устанавливается и время ожидания клиента истекает (ошибка 0x8007274C).
В Wireshark (на ПК) я вижу:
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
плюс ряд повторных передач. Поскольку соединение не работает, я отключил брандмауэр на ПК. Это тоже не помогает. Хотя настройки порта не должны иметь значения, я открыл TCP-порт 1337 на своем маршрутизаторе.
В следующем потоке возникла та же проблема, но это было связано с запуском обоих приложений на одном компьютере. Как только Свен разделил клиент и сервер на ПК ‹-> мобильный телефон, у него это сработало.
Сбой клиента сервера C# при подключении UWP
Я провел сеанс отладки 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
Есть идеи? Буду очень признателен за предложения по устранению этой проблемы.