Bouyei.NetFactory.net 高性能异步、同步通信库
c# 高性能大并发 socket 异步、同步通信库,建立独立的发送缓冲池和接收缓冲池解决发送和接收不断分配缓冲区问题,主要功能模块:
支持.net core和.net framework 。
tcp客户端和服务端,客户端分为同步和异步通信连接;
udp客户端服务端,客户端分为同步和异步通信连接;
数据包通信协议独立模块,帮助使用者提供数据包格式定制。
数据包解析独立模块;
客户端连接管理池模块;
测试:
简单测试结果单个连接实例收发10w个数据包程序内存消耗在4MB左右,每秒稳定传输256mb的数据量,峰值在512MB左右浮动,根据网络和网卡有所误差,请以实际环境为主,一切尽在 demo 中,例子:
using NetProviderFactory; class Program { static void Main(string[] args) { int port = 13145; //服务端 INetServerProvider serverSocket = NetServerProvider.CreateProvider(); //直接返回缓冲区和接收到的偏移 serverSocket.ReceiveOffsetHanlder = new OnReceiveOffsetHandler((sToken, buffer, offset, cnt) => { Console.WriteLine("offset:from client[" + Encoding.UTF8.GetString(buffer,offset,cnt)); }); bool isOk=serverSocket.Start(port); if (isOk) { Console.WriteLine("已启动服务。。。"); //客户端 NetClientProvider clientSocket = NetClientProvider.CreateProvider(); //异步接收数据例子 clientSocket.ReceiveHanlder = new OnReceiveHandler((sToken, buffer) => { Console.WriteLine("client:from server[" + Encoding.UTF8.GetString(buffer)); }); //异步连接 bool isOk= clientSocket.ConnectTo(port, "127.0.0.1"); if(isOk){ clientSocket.Send(Encoding.UTF8.GetBytes("hello" + DateTime.Now)); } //同步连接和发送接收数据例子 if (clientSocket.ConnectSync(port, "127.0.0.1")) { clientSocket.SendSync(Encoding.UTF8.GetBytes("I'm client" + DateTime.Now), (recCnt, buffer) => { Console.WriteLine("client:from server[" + Encoding.UTF8.GetString(buffer, 0, recCnt)); }); } } Console.ReadKey(); } }
评论
nanomsg高性能通信库
nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议:配对模式:简单的一对一的通信;总
nanomsg高性能通信库
0
Accelio高性能异步 RPC 库
Accelio是针对硬件加速优化的高性能异步可靠的消息传递工具和RPC库。RDMA以及其他传输实现(如TCP/IP,共享存储器等)可以利用高效便捷的API。Accelio旨在最大化消息和CPU并行性,
Accelio高性能异步 RPC 库
0
Mario同步到异步的类库
Mario是一个让编写从同步到异步的类库,它的线程安全较大,易于使用。Mario的最基本的想法就是为了减少人员的安排,降低成本和时间投入。但是有了这个类库,操作人员就可以抽出精力做别的事情了。所以Ma
Mario同步到异步的类库
0