UWP C#异步套接字服务器不能接受

Posted

技术标签:

【中文标题】UWP C#异步套接字服务器不能接受【英文标题】:UWP C# asynchronous Socket Server can't accept 【发布时间】:2018-11-13 08:37:15 【问题描述】:

我的 Socket 服务器无法接收任何连接请求。

尝试使用简单的Socket服务连接服务器=>连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应127.0.0.1:1337。 在 appxmanifest 中启用了私有互联网和互联网(客户端和服务器)。

服务:

IPEndPoint serviceEndPoint = new IPEndPoint(IPAddress.Loopback, 1337);
Socket _serviceSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_serviceSocket.Bind(serviceEndPoint);
_serviceSocket.Listen(254);
Socket clientSocket = null;
await _serviceSocket.AcceptAsync(clientSocket);

客户:

IPAddress _address = IPAddress.Loopback;
IPEndPoint _ep = = new IPEndPoint(_address, 1337);
Socket _clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_clientSocket.Connect(_ep);

【问题讨论】:

这当然看起来应该可以工作 - 它可以在常规 .NET(非 UWP)上工作... 你能告诉我为什么它在 UWP 中不起作用吗? 我真的希望我能;不过,您的代码并不疯狂 - 不管它是什么:它是微妙且特定于 UWP 的:( 【参考方案1】:

所以我尝试在我的 Raspberry Pi 上调试它并且它工作正常。我不知道为什么这段代码在我的电脑上不起作用。

【讨论】:

【参考方案2】:

根据the docs,两个 UWP 应用程序由于(它们所谓的)网络隔离而无法在本地主机上通信。我没有这方面的经验,但文档可能会显示需要进行一些配置更改...

【讨论】:

以上是关于UWP C#异步套接字服务器不能接受的主要内容,如果未能解决你的问题,请参考以下文章

C# 框架中的 UDP 数据报套接字(来自 UWP 的端口)

UWP c# 从 StreamSocket 读取 XML

C#异步套接字服务器没有收到来自Java客户端的响应

绑定时 C# 异步 SocketException

C# 套接字接收异步

C# 异步套接字概念