.net 高性能异步、同步通信库 Bouyei.NetFactory
- 授权协议: GPL
- 开发语言: C# .NET
- 操作系统: 跨平台
- 软件首页: http://git.oschina.net/bouyei/Bouyei.NetProviderFactory/
- 软件文档: http://git.oschina.net/bouyei/Bouyei.NetProviderFactory/wikis/home
软件介绍
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();
}
}
程序员成长的烦恼
吴亮、周金桥、李春雷、周礼 / 华中科技大学出版社 / 2011-4 / 28.00元
还在犹豫该不该转行学编程?还在编程的道路上摸爬滚打?在追寻梦想的道路上你并不孤单,《程序员成长的烦恼》中的四位“草根”程序员也曾有过类似的困惑。看看油田焊接技术员出身的周金桥是如何成功转行当上程序员的,做过钳工、当过外贸跟单员的李春雷是如何自学编程的,打小在486计算机上学习编程的吴亮是如何一路坚持下来的,工作中屡屡受挫、频繁跳槽的周礼是如何找到出路的。 《程序员成长的烦恼》记录了他们一步一......一起来看看 《程序员成长的烦恼》 这本书的介绍吧!
