<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          HSocket異步Socket框架

          聯(lián)合創(chuàng)作 · 2023-09-29 08:00

          這是一個(gè)L/V(Length/Value)模型的異步Socket框架.L是指發(fā)送byte數(shù)組的長度,L固定為10個(gè)byte,V是指要發(fā)送的byte數(shù)組.可以用于處理超長的消息,處理完成的響應(yīng)也按照L/V模型發(fā)送,客戶端接收可以參考服務(wù)端解析過程。

          eg:

          • 1.第一次收到的byte[]:0 0 0 0 0 0 1 1 1 2 28 30 18 26 88 99 77 那么先取0 0 0 0 0 0 1 1 1 2,得到長度為1112,對(duì)后面的byte(從index10以后)進(jìn)行存儲(chǔ) 

          • 2.第二次收到的byte[]:5 10 0 66 0 0 1 1 1 2 28 30 18 26 88 99 44 那么繼續(xù)存儲(chǔ)收到的byte[],在之前的存儲(chǔ)上追加 ... ... n.直到第n次收到byte[],在之前的存儲(chǔ)上追加,當(dāng)存儲(chǔ)的byte[]長度等于1112時(shí)停止接收,開始解析,解析完成按照L/V模型組織發(fā)送,發(fā)送完畢繼續(xù)步驟1.(中間遇到過程錯(cuò)誤,將關(guān)閉會(huì)話)

          特別提醒:

          • 1.僅支持UTF8編碼解析,原因是UTF8支持任何語言.采用Node.js做測(cè)試時(shí),只用了英文字符做發(fā)送,原因是UTF8編碼英文字符的長度和字符串長度一致(1:1). 

          • 2.Command必須實(shí)現(xiàn)CommandBase類,并且有一個(gè)無參構(gòu)造函數(shù)(當(dāng)然你可以修改代碼,移除此限制,多數(shù)情況下這也完全夠用),實(shí)現(xiàn)的Command類必須名稱以Command結(jié)尾(大小寫敏感).eg:TCommand,客戶端發(fā)送命令參考Node.js實(shí)現(xiàn),Command為T,則正確匹配TCommand處理返回結(jié)果. 

          • 3.配置文件參考server.cfg,生成時(shí)需拷貝到生成目錄(vs可以通過屬性設(shè)置實(shí)現(xiàn)). 

          • 4.有很多實(shí)現(xiàn)可以提取出接口,進(jìn)一步優(yōu)化使得更加容易擴(kuò)展,更加靈活. 

          • 5.如果發(fā)現(xiàn)任何問題和不足之處或者BUG請(qǐng)email給我:[email protected]

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩深喉在线视频 | 成人黄在线| 操逼免费观看网站 | 黄色一级生活A片 | 操屄网址 |