SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,由江振宇先生开发,之因此选用它是由于一下几点刚好复合项目需求:windows
SuperSocket的架构和设计能够在官方的中文文档查询到http://docs.supersocket.net/v1-6/zh-CN/Architecture-Diagrams 服务器
SuperSocket的工做流程如图:网络
每一个链接的客户端都以session的方式管理,发送数据给客户端也经过session的send方法,每一个客户端发过来的数据流都通过ReceiveFilter过滤器(这里便可自定义协议或者使用自带的一些帧过滤器)到ReqestInfo,ReqestInfo包含了该条数据内容,固然若是是自定义的协议,能够实现本身的ReqestInfo,把数据包内容直接装入帧对象.session
官方的文档和demo也是花了一段时间才知道怎么使用达到项目需求的功能,因为项目是作采集设备数据的TCP服务器,通讯帧格式也是比较常见的设计,因此大概个需求明白了,官方的文档和demo里没有详细讲解这一块,可是也基本指引了咱们该怎么去作这样的一个服务程序.架构
首先,官方文档最简单示例是:Telnet服务器.并发
Telnet示例: 默认的AppServer是设计成了Telnet方式的协议,因此直接配置->启动->注册链接,断开,数据接收事件->逻辑处理,就完成最简单的功能了,用windows自带的Telnet调试便可明白.同时学习SuperSocket的还有一点就是看下载的sourcecode的quickstrat项目,各类场景都涉及到了.框架
虽然SuperSocket是一个屌炸天的框架,可是默认的AppServer我相信仍是不符合大部分人是开发场景,我只想用里面最普通的TCP服务器功能,收发下数据,管理下链接,又或者我要实现带XXX协议的过滤的TCP服务器,我根本就不想用Telnet.因此,拓展AppServer那是必须的功课了.socket
为了减小码农的工做量,有时间去泡妹子,伟大的SuperSocket真是无微不至,自带了各类常见的帧过滤器,内置的经常使用协议实现模版以下:工具
以上模板的使用可参考官方文档http://docs.supersocket.net/v1-6/zh-CN/The-Built-in-Common-Format-Protocol-Implementation-Templates性能
这里前几个模板可能使用不是复杂,使用场景也比较少,至于BeginEndMarkReceiveFilter和FixedHeaderReceiveFilter的使用就稍微复杂,可是他们基本能够知足比较经常使用的行业使用的协议.
后一篇将作一个demo使用FixedHeaderReceiveFilter来解析自定义的协议帧
本文由http://www.cnblogs.com/xiepeixing/原创,转载请著名出处