C# TcpListener未在UWP应用程序上工作

C# TcpListener未在UWP应用程序上工作,c#,windows,uwp,windows-10-universal,C#,Windows,Uwp,Windows 10 Universal,我正在创建一个非常简单的客户端服务器UWP应用程序。我有以下代码 private void Button_Click(object sender, RoutedEventArgs e) { TcpListener server; server = new TcpListener(IPAddress.Any, 8081); server.Start(); while (!server.Pending()) { } Console.Wri

我正在创建一个非常简单的客户端服务器UWP应用程序。我有以下代码

private void Button_Click(object sender, RoutedEventArgs e)
{
    TcpListener server;

    server = new TcpListener(IPAddress.Any, 8081);
    server.Start();

    while (!server.Pending())
    {
    }

    Console.WriteLine("Connected");
}

这段代码在Windows经典表单应用程序中非常有效。然而,在我的UWP应用程序中,Pending始终为false。它拒绝看到传入的连接。我在客户端和服务器的同一台笔记本电脑上,防火墙已关闭。同样,它在我的表单应用程序中工作,因此它不是环境。我在“功能”部分允许使用客户机/服务器选项,但仍然没有成功

使用netstat,我可以看到端口8081正在侦听

你知道我错过了什么吗?多谢各位

我的客户机和服务器都在同一台笔记本电脑上

根据您的描述,服务器和客户端位于同一设备上。根据以下注释部分:

由于网络隔离,Windows不允许在同一台机器上运行的两个UWP应用程序之间建立套接字连接套接字或WinSock;无论是通过本地环回地址127.0.0.0,还是通过显式指定本地IP地址。有关UWP应用程序可以相互通信的机制的详细信息,请参阅应用程序到应用程序的通信

我们无法在同一台机器上运行的两个UWP应用程序之间建立套接字连接。即使有环回豁免也不行。这就是设计


更多详细信息请参考。

您是否已更改清单以允许此类连接?我在“功能”部分允许使用客户机/服务器选项,但仍然不走运。我不喜欢,但还行。我想事情就是这样。由于您无法在本地机器上测试后台服务,因此Raspberry PI的开发速度非常慢。您必须推送它并在设备本身上运行它。