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/原創,轉載請著名出處