UWP Open 2x Server Listening (BindServiceNameAsync("некоторый порт #)" в 1 приложении
Для 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
2 ответа
Нет ограничений на количество прослушиваемых портов для приложений в Windows IoT Core. Причина в правилах брандмауэра для политики безопасности соединения. Добавьте правило брандмауэра в Windows IoT Core, как показано ниже, с помощью PowerShell для Windows IoT или запустив команду на портале устройства (Процессы-> Команда запуска):
netsh advfirewall firewall add rule name="Open Port 6001" dir=in action=allow protocol=TCP localport=6001
Кстати, вы можете использовать следующий командлет, чтобы проверить правила на вашем устройстве.
netsh advfirewall firewall show rule status=enabled name=all
Убедитесь, что вы проверили возможность использования частных сетей (клиент и сервер) в Package.appxmanifest серверного приложения, а затем протестируйте соединение между различными устройствами.