gpt4 book ai didi

sockets - 在UWP应用中接收UDP数据报需要做什么?

转载 作者:行者123 更新时间:2023-12-03 12:03:18 25 4
gpt4 key购买 nike

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

using (var udpClient = new UdpClient(port))
{
var datagram = await udpClient.ReceiveAsync();
}

为了进行测试,我需要在Visual Studio中运行该应用程序,并从同一台计算机上通过一些(非UWP)终端程序向该应用程序发送数据报。但这是行不通的- ReceiveAsync()永不返回。

我知道UWP默认情况下禁止回送通信,但根据 https://stackoverflow.com/a/44990978/487356进行调试,应该可以实现。

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

我需要做别的事情才能使它正常工作吗?

编辑
阅读更多有关此内容的信息,即使该应用列在LoopbackExempts下,也似乎禁止从同一台计算机接收数据,请参见 Problems with UDP in windows 10. UWP。真烦人!

因此,我想接下来的问题将是:什么是IPC的良好(最好是无连接)替代方案?

最佳答案

For testing purposes I need to run this app from within Visual Studio and from the same computer send a datagram to the app with some (non-UWP) terminal program. But it doesn't work - ReceiveAsync() never returns.



如果这仅出于测试目的,则可以使用CheckNetIsolation工具临时启用从同一台计算机接收连接:
CheckNetIsolation.exe LoopbackExempt -is -n=<AppContainer or Package Family>
但是,如 here所述,该工具将必须以admin身份连续运行。我们使用这种机制对代码进行单元测试,并且效果很好。

关于sockets - 在UWP应用中接收UDP数据报需要做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54348425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com