我想就使用哪種格式通過TCP傳輸數據提供一些建議。目前,我已經設計了一個帶有分隔字符串的簡單文本協議。我在想我應該使用已經存在的東西,如XML,JSON或XMPP?通過TCP傳輸數據的格式是什麼?
人們使用什麼數據格式來通過TCP傳輸?
我想優化速度和吞吐量,但寧願採用現有的標準比我自己的。
我想就使用哪種格式通過TCP傳輸數據提供一些建議。目前,我已經設計了一個帶有分隔字符串的簡單文本協議。我在想我應該使用已經存在的東西,如XML,JSON或XMPP?通過TCP傳輸數據的格式是什麼?
人們使用什麼數據格式來通過TCP傳輸?
我想優化速度和吞吐量,但寧願採用現有的標準比我自己的。
http://incubator.apache.org/thrift/ – Nosrama 2009-09-04 17:33:40
在大多數情況下,人們只是聲明一個記錄,其佈局可以在兩端重現並使用它。只有當你有更復雜的需求時,你才需要做更多的事情。
對於不同的長度字符串,我可能只是將它們實現爲一系列長度和長度字節的數據。在Cish語言中,您可以通過利用空終止符來獲得長度。沒有比這更復雜的了。
取決於數據類型和誰正在使用您的數據。
如果你正在編寫你自己的客戶端/服務器對,那麼可以說最好的格式是某種二進制序列化。它結構緊湊,可以在電線上輕鬆傳輸,並且可以快速重建。
如果你正在爲使用多種語言的許多消費者編寫東西......那麼我會更多地關心XML或JSON(取決於數據的大小和複雜性)。
XML更適合處理大型複雜的數據。
JSON適用於更小,更緊湊的數據。
您可以詳細說明XML - >大數據,JSON小數據語句嗎? – JosefAssad 2009-09-04 17:46:39
當您嘗試通過JSON傳輸大量數據時,它很快就會出現問題。試圖查看大量的JSON和調試問題是一場噩夢。當事情開始變得越來越大和越來越複雜時,XML更加結構化並且更容易處理。 – 2009-09-04 18:02:40
對於您的數據類型而言,XML聽起來是個不錯的選擇 - 現在已經有很多XML庫(或者您的語言甚至可能會內置XML解析)。
基於文本也使得手動調試更容易,所以這是遠離線路上的二進制編碼的一個原因。
您要傳輸什麼類型的數據? – 2009-09-04 17:26:02
它的基本文字 - 主要是地圖,例如名稱 - >諾斯拉馬,國家 - >美國,ID-> 2343 ... – Nosrama 2009-09-04 17:27:53