UWP Open 2x Server Listening (BindServiceNameAsync("some port#)) в 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

person Unknown Person    schedule 26.12.2017    source источник


Ответы (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
person Michael Xu - MSFT    schedule 01.01.2018

Убедитесь, что вы отметили возможность Частные сети (клиент и сервер) в файле Package.appxmanifest серверного приложения, а затем проверьте соединение между различными устройствами.

person Breeze Liu - MSFT    schedule 27.12.2017
comment
Проверил частную сеть (клиент и сервер) в манифесте, но не повезло. Я разрабатываю Windows IoT Core. К сожалению, не работает. Возможно, существует ограничение на 1 порт прослушивания сервера для каждого приложения. Я думаю, что это может быть ограничение, но не смог найти ни одного документа, указывающего на мое заявление. - person Unknown Person; 01.01.2018