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

时间:2011-05-05 20:49:31

标签: c# sockets

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

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

5 个答案:

答案 0 :(得分:1)

.NET框架已经一个用于处理tcp和udp的库。它比基本的winsock apis大大简化了这个过程。那么你想要一个位于图书馆顶部的图书馆?也许你会想要另一个图书馆?另一个在那个之上?

我的观点是,你可能不会发现比.net框架已经提供的更简单的东西。套接字是一个复杂的主题,需要您自己提供大量的实现。

库通常有用的是实现一些已经建立的协议(如SMTP或FTP),或者甚至可以为您提供更多工具来创建自己的协议。

答案 1 :(得分:1)

NetMQ非常适合简单的套接字通信。它处理消息的重建和许多杂乱的细节。它像在消息传递系统中一样用于消息通信,但是对于简单的套接字来说,它将非常有用。看一下Request-Response。套接字是您经常将框架置于框架之上的最终领域之一,无论如何,让NetMQ来处理这些棘手的问题。

答案 2 :(得分:1)

使用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,您可以使用Akka Async Streams in C# 8来完成。
  4. RSocket是一个新的图书馆built by ex-Netflix engineer Robert Roeser。
    • 类似于Akka Streams,它提供了一种处理背压的方法。

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

  1. EasyNetQ nuget软件包的下载量超过400万
  2. NetMQ nuget包的下载量超过60万
  3. ZeroMQ nuget包的下载量超过8万
    • 我已经在一个现实世界的项目中使用了它,并且效果很好,但是它是一个围绕C dll的绑定包装器

答案 3 :(得分:0)

看一下.NET中包含的WCF。

答案 4 :(得分:0)

我在这里为基于控制台/ win app的C#WCF / TCP套接字服务器/客户端制作了示例应用程序

https://github.com/evaldsurtans/wcf-sample-server-client