我面临通过TCP将Windows 10 PC连接到运行Windows 10 IoT(17763,似乎是最新版本)的Raspberry Pi的问题。 RPI是服务器,Windows 10 PC是客户端。
我找到了以下Socket文档: https://docs.microsoft.com/de-de/windows/uwp/networking/sockets 它提供了一个很好理解的UWP示例。该示例仅在一个应用程序中运行服务器和客户端。推理:
要从尽可能少的活动部件开始(并避免当前的网络隔离问题),请创建一个新项目,并将下面的客户端和服务器代码放入同一项目中。
该示例在PC或RPI上均可正常运行。我通过a)使用“本地主机”和b)PC的各个IP地址和RPI =>确定来尝试过。
我将示例分为两个应用程序,并在RPI上运行服务器,在PC上运行客户端。当然,我在客户端中添加了RPI的IP地址
static string Server = "192.168.178.78"; // Raspberry PI
...
var hostName = new Windows.Networking.HostName(Server);
不幸的是,未建立连接并且客户端超时(错误0x8007274C)。
在Wireshark(在PC上)中,我可以看到:
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
加上一些重传。 由于连接不起作用,我关闭了PC上的防火墙。这也无济于事。尽管端口设置无关紧要,但是我在路由器上打开了TCP端口1337。
在以下线程中,发生了相同的问题,但这是由于在同一台计算机上运行了两个应用程序。斯文将客户端和服务器分离到PC <->手机后,它就为他工作了。
C# server client fails on connect 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
有什么主意吗?我非常感谢解决该问题的建议。
答案 0 :(得分:0)
请参阅Michael Xus的评论。 Raspberry Pi上的端口必须由
打开netsh advfirewall firewall add rule name="pidart port 1337" dir=in action=allow protocol=TCP localport=1337
这解决了问题