UWP 应用程序拒绝在 P2P 服务器部分接收数据

UWP application refuses to receive data in P2P server part

我正在尝试创建 P2P(UDP) windows 10 个用 C++ 编写的 UWP 应用程序,使用用 C 编写的网络库(尝试了 enet 和 libuv)。 问题是当应用程序像客户端一样运行时,一切都按预期工作,但是当我测试服务器部分时,应用程序拒绝接收任何事件(enet 中的连接和来自 libuv 的消息)。我尝试了来自简单控制台应用程序的代码,它适用于 enet 和 libuv! 我还在防火墙中添加了规则以允许默认端口上的所有内容。

我的问题是,UWP应用接收需要额外配置吗?

根据您在MSDN same thread 中的描述,服务器和客户端在同一台设备上。 根据DatagramSocket的注释official sample:

Network communications using an IP loopback address cannot normally be used for interprocess communication between a Universal Windows Platform (UWP) app and a different process (a different UWP app or a desktop app) because this is restricted by network isolation.

我们无法将 uwp 应用程序与同一台机器上的其他应用程序通信。甚至没有环回豁免。这就是设计。如果您使用 c# 控制台项目作为服务器并使用 uwp 应用程序作为客户端,它们可能会成功通信。但它需要特殊的步骤(例如 运行 作为管理员的控制台)让它工作,你可能碰巧满足要求。详情可以参考.