請教網絡傳輸數據壓縮的問題 |
缺席
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
[code delphi] 現在正在定義自己的網絡傳輸協議,是以XML方式定義報文,如: <?xml version="1.0" encoding="UTF-8"?> ....SomeData 我在接收數據時,會根據"<?xml "與""字串來從Buffer中分析提取一條完整報文。 有時某個XML數據包會比較大(1MB),所以我希望能在傳輸前先壓縮, 我現在的做法是把XML報文中的...SomeData部分進行壓縮,再放到" 接收到數據時,先對" 現在的問題是,報文內容壓縮後,就可能與XML格式相衝突,即難保壓縮後的內容中不會出現 ""等用來區分報文的特殊字符。一旦出現,就會造成報文無法正確從Buffer中分取出來。 請問大家有什麽好的思路或方法,可以解決這個問題,或是有別的辦法可以減小網絡傳輸量? [/code]
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
說明一 下我的做法:
假設封包定義為以下的格式(括符內的數值為欄位長度) STX(1) LEN(2) PktType(1) DataType(1) DATA(n) CRC(2) ETX(1) 我都是讓已壓縮的封包佔用一種傳輸格式, 亦即佔用一個 PktType(1) DataType(1) 編號. 首先在發送端會將許多個封包壓縮成一個 然後在接收端將它還原成原來許多個封包 的格式, 最後依序將每個封包進行解碼. 個人意見, 僅供參考... |
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |