C#服务器客户端在连接UWP(2)上失败

问题描述 投票:0回答:1

我面临通过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)使用“ localhost”和b)PC和RPI的单个IP地址=>确定来尝试过。

我将示例分为两个应用程序,并在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。

在以下线程中,发生了相同的问题,但这是由于在同一台计算机上同时运行两个应用程序。一旦Sven将客户端和服务器分离到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

有什么想法吗?我非常感谢解决该问题的建议。

c# tcp uwp client-server windows-iot-core-10
1个回答
0
投票

请参阅Michael Xus的评论。 Raspberry Pi上的端口必须通过

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

此问题已解决

© www.soinside.com 2019 - 2024. All rights reserved.