Sockets 在UWP应用程序中接收UDP数据报需要做什么?

Sockets 在UWP应用程序中接收UDP数据报需要做什么?,sockets,xamarin.forms,uwp,udpclient,xamarin.uwp,Sockets,Xamarin.forms,Uwp,Udpclient,Xamarin.uwp,在我的Xamarin.Forms UWP应用程序中,我有以下接收UDP数据报的简单代码: using (var udpClient = new UdpClient(port)) { var datagram = await udpClient.ReceiveAsync(); } 出于测试目的,我需要在VisualStudio中运行此应用程序,并从同一台计算机向该应用程序发送带有某些(非UWP)终端程序的数据报。但它不工作-ReceiveAsync()永远不会返回 我知道UWP在默认情况下禁

在我的Xamarin.Forms UWP应用程序中,我有以下接收UDP数据报的简单代码:

using (var udpClient = new UdpClient(port))
{
  var datagram = await udpClient.ReceiveAsync();
}
出于测试目的,我需要在VisualStudio中运行此应用程序,并从同一台计算机向该应用程序发送带有某些(非UWP)终端程序的数据报。但它不工作-
ReceiveAsync()
永远不会返回

我知道UWP在默认情况下禁止环回通信,但对于调试,应该可以根据

在UWP项目中,我启用了“Internet(客户端)”、“Internet(客户端和服务器)”和“专用网络(客户端和服务器)”功能。我还在调试设置中启用了“允许本地网络环回”。使用CheckNetIsolation工具,我能够验证我的应用程序是否列在LoopbackException下。所以这一切看起来不错,但我仍然无法接收任何UDP数据报

我还需要做些什么才能让它起作用吗


编辑 阅读更多关于这一点的信息,看起来即使应用程序列在LoopbackExcempts下,从同一台机器接收数据也是被禁止的,请参阅。这真烦人

所以我想接下来的问题是:什么是IPC的好选择(最好是无连接的选择)

出于测试目的,我需要在VisualStudio中运行此应用程序,并从同一台计算机向该应用程序发送带有某些(非UWP)终端程序的数据报。但它不起作用-ReceiveAsync()永远不会返回

如果这只是出于测试目的,您可以使用CheckNetIsolation工具临时启用从同一台机器接收连接:


CheckNetIsolation.exe loopbackemption-is-n=,该工具必须以管理员身份持续运行。我们使用这种机制对代码进行单元测试,效果非常好。

您的理解是正确的。”使用IP环回地址的网络通信不能用于Windows运行时应用程序中的进程间通信(两个不同的应用程序之间),因为这受到网络隔离的限制。“但出于通信目的,允许在同一进程中的应用程序中使用IP环回地址进行网络通信。”。所以,如果是为了测试,你可以像官方的UWP一样。在同一个应用程序中收听和连接。这成功了,谢谢!它还取决于您使用的端口。我试了一些,直到找到一个有效的。