博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高效能TCP通讯基础组件Beetle.Express
阅读量:7168 次
发布时间:2019-06-29

本文共 1640 字,大约阅读时间需要 5 分钟。

Beetle.Express是Beetle相应的免费版Tcp通讯组件,Beetle.Express提供基础的TCP通讯封装,虽然只具备了基础功能,但在TCP吞吐上有着和Beetle一样出色的性能.组件是通过队列的方式处理控制TCP数据的发送和接收,在发送数据的时候你只关心操作即可,不必关心不停地调用发送方法会不会导致缓存区益出的情况.组件还提供了用于管理连接接入,断开和数据接收等事件,使开发人员对于连接的管理更方便.

使用配置

组件在使用之前需要进行一个简单的配置,主要是描述服务端的一个监听等信息

以简配置在所有IP的8088端口打开监听服务

服务代码

配置完成后,只需要针对相关配置打开TCP服务即可

class Program : IServerHandler    {        static void Main(string[] args)        {            TcpServer server = new TcpServer();            server.Open("serverSection");            Console.WriteLine("Start {0}@{1}", server.Host, server.Port);            System.Threading.Thread.Sleep(-1);        }        public void Connect(TcpServer server, ChannelConnectEventArgs e)        {            Console.WriteLine("{0} connected", e.Channel.EndPoint);        }        public void Disposed(TcpServer server, ChannelEventArgs e)        {            Console.WriteLine("{0} disposed", e.Channel.EndPoint);        }        public void Error(TcpServer server, ErrorEventArgs e)        {            Console.WriteLine("{0} error:{1}", e.Channel.EndPoint, e.Error.Message);        }        public void Receive(TcpServer server, ChannelReceiveEventArgs e)        {            Data data = new Data();            byte[] hw = Encoding.ASCII.GetBytes("Hello World");            data.SetBuffer(hw, hw.Length);            server.Send(data, e.Channel);        }        public void SendCompleted(TcpServer server, ChannelSendEventArgs e)        {        }    }
这样一个简单的Hello Word程序就完成,你只需要简单地telnet到这个端口并发收信息就会收到一个Hello Word的回复

组件性能

在网络吞吐能力方面组件继承了beetle出色的处理能力.在一台E1230V的PC上5000个长连接,每秒处理5W的请求应答其CPU使用率不到10%.

  • 1000连接测试情况
  • 5000连接测试情况

转载地址:http://dfmwm.baihongyu.com/

你可能感兴趣的文章