开源 C# 套接字 (TCP + UDP) 库

oli*_*dev 4 c# sockets

我对 .NET 框架的标准套接字类感到头疼。

有人可以推荐一个高效的开源 C# 套接字 (TCP + UDP) 库来处理套接字消息吗?

Joh*_*ski 6

使用 Kerry Jiang 的 SuperSocket 库或 Akka.NET

  1. SuperSocket nuget 包下载量超过 10 万次;请注意,2.0+ 适用于 .NET Core,而 1.6 适用于 .NET Framework 4.8 及更低版本
  2. SuperSocket.ClientEngine.Core 的下载量已超过 70 万次
  3. Akka(针对.NET)的下载量超过 120 万次,并且有一个特殊的 Akka.NET.Test
    • 从某种意义上说,这是作弊,因为它将使用套接字的决定推迟到最后一刻
    • “Akka”最初是一个 Java/Scala 项目,后来转向 .NET
    • 因此,您应该在 Google 上搜索“Akka.NET”而不仅仅是“Akka”
    • 一般来说,您可能希望使用一些背压解决方案来构建网络 IO,您可以使用C# 8 中的 Akka Async Streams来实现。
  4. RSocket是由前 Netflix 工程师 Robert Roeser 构建的新库。
    • 与 Akka Streams 类似,它提供了一种处理背压的方法。

另外,在使用消息队列库而不是套接字库方面:

  1. EasyNetQ nuget 包下载量超过 400 万次
  2. NetMQ nuget 包下载量超过 60 万次
  3. ZeroMQ nuget 包下载量超过 80k
    • 我在现实世界的项目中使用过它,它工作得很好,但它是 C dll 的绑定包装器