在Windows UWP中访问更高的UDP端口

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

我有一个最初为Win8 Modern编写的应用程序。我使用UDP通过端口54372与外部硬件进行通信。

我将其移植到Android和iOS,现在想将其重新移植回UWP。当我尝试在UWP App中访问端口时,出现未知错误。我同时尝试了我的Modern App中的原始DatagramSocket方法以及Android和iOS Apps中的System.Net.Sockets.UdpClient方法。

然后我尝试从Microsoft https://docs.microsoft.com/en-us/samples/microsoft/windows-universal-samples/datagramsocket/运行DatagramSocket示例

如果我使用他们的默认服务,没问题。如果将其更改为54372,则会收到错误消息:

System.Runtime.InteropServices.COMException:'试图以其访问权限禁止的方式访问套接字。

现在看来代码可以,只是MS现在对我可以使用的端口施加了限制。

我需要对权限进行哪些更改以允许我的应用访问此端口?硬件是一种商用产品,已经有9年的历史了,因此不能更改端口。

谢谢,丹

uwp udp port datagram udpclient
1个回答
0
投票

我发现了问题。它似乎是Apple的Bonjour服务。而是仅“占用”了所需的单个UDP端口,而是分配了一个100的块。幸运的是,我的默认端口位于该块的中间。停止Bonjour之后,一切正常。重新启动Bonjour会导致它选择了另一个块,因此不再受到干扰。它迫使我们修改应用程序的各种版本,以允许备用UDP端口,并发布固件更新以更改端口,以防将来任何客户遇到此问题。同样,如果操作系统告诉我问题出在哪里,而不仅仅是“未经授权的访问”,那就太好了。

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