我正在尝试将带有NetMQ的消息在C#UWP中传递给python。
python充当Subscriber,C#充当Publisher。
当我使用C#.Net Core时,我可以看到消息到达python订阅者,但是当…
这是正常的行为。您正在为UWP应用程序和其他进程(不同的UWP应用程序或桌面应用程序)之间的网络通信使用IP环回地址。这受到网络隔离的限制。
您可以在不同的计算机上运行服务器和客户端进行测试。请参阅文件 如何启用环回并排除网络隔离故障(Windows运行时应用程序) 。它解释了这种情况:
环回仅允许用于开发目的。不允许在Visual Studio外部安装Windows运行时应用程序。此外,Windows运行时应用程序只能将IP环回用作客户端网络请求的目标地址。因此,使用DatagramSocket或StreamSocketListener监听IP环回地址的Windows运行时应用程序无法接收任何传入数据包。
在您的情况下,如果您只是想测试UWP应用程序是否可以成功向您的python订阅者发送消息。您可以在另一台计算机上运行UWP应用程序。我使用您的代码制作一个UWP应用程序来发送消息并将控制台应用程序作为用户在另一台机器上运行。控制台应用程序可以接收消息。
请注意,由于您的UWP应用程序需要在运行时访问网络,因此您需要启用Netwrok功能( Internet(Client) Internet(Client & Server) Private Networks(Client & Server) )在Package.appxmanifest文件中。
Internet(Client)
Internet(Client & Server)
Private Networks(Client & Server)