UWP 在 1 个应用程序中打开 2x 服务器监听 (BindServiceNameAsync("some port#))
UWP Open 2x Server Listening (BindServiceNameAsync("some port#)) in 1 Apps
对于 UWP,我尝试打开 2 个端口来监听传入连接:
BindServiceNameAsync("6000")
BindServiceNameAsync("6001")
不幸的是我无法让它工作,无论哪个监听端口首先与 TCP 客户端建立连接,另一个端口都无法连接。
我的代码是这样的:
Public Async Sub IDPserverStart()
Dim socketListener = New Windows.Networking.Sockets.StreamSocketListener
AddHandler socketListener.ConnectionReceived, AddressOf TCPconnectedProcess
Try
Await socketListener.BindServiceNameAsync("6001")
Catch ex As Exception
socketListener.Dispose()
Debug.WriteLine("IDPserverStart() ERR: " & ex.Message)
End Try
End Sub
Public Async Sub OPSserverStart()
Dim socketListener = New Windows.Networking.Sockets.StreamSocketListener
AddHandler socketListener.ConnectionReceived, AddressOf OPSconnectedProcess
Try
Await socketListener.BindServiceNameAsync("6000")
Catch ex As Exception
socketListener.Dispose()
Debug.WriteLine("OPSserverStart() ERR: " & ex.Message)
End Try
End Sub
请确保您已经检查了服务器应用程序 Package.appxmanifest 中的 专用网络(客户端和服务器) 功能,然后测试不同设备之间的连接。
Windows IoT Core 上每个应用程序的侦听端口没有限制。原因是连接安全策略的防火墙规则。请通过设备门户中的 using PowerShell for windows IoT 或 运行 命令将防火墙规则添加到 Windows IoT Core 如下 cmdlet(进程->运行 命令):
netsh advfirewall firewall add rule name="Open Port 6001" dir=in action=allow protocol=TCP localport=6001
BTW.You 可以使用以下 cmdlet 检查您设备中的规则。
netsh advfirewall firewall show rule status=enabled name=all
对于 UWP,我尝试打开 2 个端口来监听传入连接:
BindServiceNameAsync("6000")
BindServiceNameAsync("6001")
不幸的是我无法让它工作,无论哪个监听端口首先与 TCP 客户端建立连接,另一个端口都无法连接。
我的代码是这样的:
Public Async Sub IDPserverStart()
Dim socketListener = New Windows.Networking.Sockets.StreamSocketListener
AddHandler socketListener.ConnectionReceived, AddressOf TCPconnectedProcess
Try
Await socketListener.BindServiceNameAsync("6001")
Catch ex As Exception
socketListener.Dispose()
Debug.WriteLine("IDPserverStart() ERR: " & ex.Message)
End Try
End Sub
Public Async Sub OPSserverStart()
Dim socketListener = New Windows.Networking.Sockets.StreamSocketListener
AddHandler socketListener.ConnectionReceived, AddressOf OPSconnectedProcess
Try
Await socketListener.BindServiceNameAsync("6000")
Catch ex As Exception
socketListener.Dispose()
Debug.WriteLine("OPSserverStart() ERR: " & ex.Message)
End Try
End Sub
请确保您已经检查了服务器应用程序 Package.appxmanifest 中的 专用网络(客户端和服务器) 功能,然后测试不同设备之间的连接。
Windows IoT Core 上每个应用程序的侦听端口没有限制。原因是连接安全策略的防火墙规则。请通过设备门户中的 using PowerShell for windows IoT 或 运行 命令将防火墙规则添加到 Windows IoT Core 如下 cmdlet(进程->运行 命令):
netsh advfirewall firewall add rule name="Open Port 6001" dir=in action=allow protocol=TCP localport=6001
BTW.You 可以使用以下 cmdlet 检查您设备中的规则。
netsh advfirewall firewall show rule status=enabled name=all