【发布时间】:2019-12-13 20:50:38
【问题描述】:
如here 和here 所述,TcpListener 的使用在 UWP 中是不可能的。相反,必须使用 StreamSocketListener。
但是经过比较长时间的研究,我不明白为什么?
由于 UWP 实际上是 .NET Core 的子集,因此在 UWP 中也应该可以使用 TcpListener!
只是为了测试,我 甚至创建了一个 UWP 项目,尝试使用 System.Net.Sockets.TcpListener 在代码中,没有问题。我没有写完整的代码 并没有尝试运行服务器,只是尝试引用 System.Net.Sockets.TcpListener 来自 UWP 项目,这是 可能的。难怪,因为即使根据微软文档 (https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.tcplistener?view=netcore-1.0) 该类从 .NET Core 1.0 开始可用。
【问题讨论】:
-
“UWP 实际上是 .NET Core 的一个子集”是另一个典型的误解。尽管 UWP/.NET Core 共享许多共同部分,但它们是不同的目标平台,这就是为什么只有 .NET Standard 才能将它们桥接在一起。
-
哦!那么这张图是不是错了i.stack.imgur.com/nl9gf.png?
-
您可能会参考最新的图表,例如devblogs.microsoft.com/dotnet/introducing-net-5 您不应该期望图表总是能说出所有真相,因为作者可能只是懒得为 UWP 单独绘制一个矩形。
-
好吧,实际上我并不仅仅依赖于图表,我在这里的答案中遇到了图表:stackoverflow.com/a/53531324/9514066 那里的人明确表示 UWP 是 .NET Core 的子集,他故意用图表来说明他的观点
-
那么很明显,这个答案立即被质疑具有误导性,并且微软在他们以后的官方博客文章中不再使用这样的图表。
标签: c# sockets websocket uwp windows-networking