为什么使用套接字进行应用程序通信的UWP应用程序仅适用于Windows 10 PC但不适用于Windows 10 Phone?

时间:2016-06-16 03:39:01

标签: c# sockets uwp

我需要在同一台机器上使用Socket进行应用程序通信的UWP应用程序。链接“https://msdn.microsoft.com/en-us/windows/uwp/networking/sockets”表明, 注意作为网络隔离的一部分,系统禁止通过本地环回地址(127.0.0.0)或显式指定本地IP地址在同一台计算机上运行的两个UWP应用程序之间建立套接字连接(套接字或WinSock)。这意味着您无法使用套接字在两个UWP应用程序之间进行通信。 UWP提供了其他应用程序之间通信的机制。

我已按照以下方式完成了我的实施。

  • 创建了一个将启动UDP套接字侦听器的应用服务。
  • 将此应用服务包含在名为服务提供商的应用程序中。
  • 服务提供商启动应用服务,然后创建UDP套接字侦听器。
  • 一旦监听器启动,服务提供者本身就会创建一个UDP客户端并启动第二个应用程序。
  • 第二个应用程序创建另一个UDP客户端并开始与应用服务创建的侦听器通信。

这适用于Windows 10 PC(完全没问题)。但是在Windows Phone 10中,只有当我从Visual Studio以调试模式运行它时,它才有效。但是当我在Windows Phone 10中运行服务提供程序(而不是从Visual Studio的调试模式)时,侦听器和服务提供程序客户端之间的通信运行良好。如果我启动第二个应用程序(服务提供程序成功启动它),则第二个应用程序的客户端和侦听器之间的通信不起作用,甚至它会停止侦听器和服务提供者客户端之间的现有连接。我无法调试它,因为它在调试模式下没有问题。

0 个答案:

没有答案