tcp長連接分包有4種方法,分別是:1、訊息長度固定的方法;2、使用特殊的字串作為訊息邊界的方法;3、在每個訊息的頭部加一個長度欄位的方法;4、利用訊息本身的格式來分包的方法。
tcp長連接分包的四個方法:
1.訊息長度固定
2.使用特殊的字串作為訊息邊界。例如http協定的headers以「\r\n」
為欄位的分隔符號
3.在每個訊息的頭部加一個長度欄位。這是最常見的
4.利用訊息本身的格式來分包。例如xml中的<root></root>
的配對等
#相關學習推薦:PHP 程式設計從入門到精通
說一下在頭部加訊息長度欄位分包的方法
假如每個訊息有一個4位元組的頭部,存放字串的長度。例如訊息“hello”,位元組流為0x00
,0x00
,0x00
,0x05
,'h',' e','l','l','o'
寫一段偽代碼展示分包:
void OnMessage() { while(接收缓冲buf可读字节>=头部长度4) { len = 包的长度 if(len>65536 or len<0) { 关闭连接 } else if(buf>=len+4) { 从buf中提取出4字节; message=将buf后的len长度内存赋给message messagecallback(message)调用用户代码处理message 从buf中移除len长度 } else { 不够一个包的长度,等待下次消息到来,break; } } }
以上是tcp長連接分包有幾種方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能