ICE的訊息編碼規則

2021-06-05 15:03:24 字數 1038 閱讀 6346

1、代表size的長度字段:

值小於255用1個位元組標示,如果大於255則使用5個位元組,第乙個位元組為255,後續的4個位元組標示真實長度

2、基本資料型別按照小端序進行實際長度編碼

3、字串被編碼成size加utf-8的實際內容,注意不包含結束字元  

4、sequence被編碼成size加實際元素編碼

5、列舉值被按照元素個數來進行位元組編碼,列舉的第乙個元素取值被編碼成0

如果列舉元素個數小於128個,那麼使用乙個位元組,小於32768則使用2個位元組,否則使用4個位元組

6、結構按照成員順序進行編碼

7、異常被按照如下的順序進行編碼:bool + (異常名 + 異常長度 + 異常內容)... + 類編碼

(異常名 + 異常長度 + 異常內容)部分按照先子類異常後基類異常的方式進行編碼

8、類的編碼按照如下順序進行:例項編號+(類名標示+類名/類編號+類長度+類內容)...

類名標示如果為0,則使用類名、否則使用類索引,按照類名出現的順序從1開始編號

(類名標示+類名/類編號+類長度+類內容)按照先子類後基類方式編碼,注意最後肯定有object基類

9、當碰到指標需要進行編碼時,指標使用的例項編號為所指向例項的負值

10、**被按照如下的方式進行編碼:id + facet + mode + secure + endpoints/adapterid

11、ice使用如下5類訊息:

a、請求訊息(messagetype:0)

struct requestdata 

;b、批量請求訊息(messagetype:1)

struct batchrequestdata 

;c、應答訊息(messagetype:2)

struct replydata 

;d、驗證連線訊息(messagetype:3)

e、關閉連線訊息(messagetype:4)

12、所有型別訊息的公共訊息頭部分結構如下:

struct headerdata 

;13、小於100個位元組的訊息是不會進行壓縮處理的   

ice學習和編碼

工作快一年了,打算把前半年的東西複習下,並且生成blog儲存。ice是一種物件導向的中介軟體平台。從根本上說,這意味著ice為構建物件導向的客戶 伺服器應用提供了工具 api和庫的支援。ice應用是和在異種環境紅使用 客戶和伺服器可以用不同的程式語言編寫,可以執行在不同的作業系統而後及其架構上,並且...

ice學習和編碼

工作快一年了,打算把前半年的東西複習下,並且生成blog儲存。ice是一種物件導向的中介軟體平台。從根本上說,這意味著ice為構建物件導向的客戶 伺服器應用提供了工具 api和庫的支援。ice應用是和在異種環境紅使用 客戶和伺服器可以用不同的程式語言編寫,可以執行在不同的作業系統而後及其架構上,並且...

Python的編碼規則

python 的編碼規則 1 命名規則 l變數名,包名,模組名 變數名通常由字母和下劃線組成,包名和模組名通常用小寫字母。l類名和物件名 類名首字母用大寫,其他字母採用小寫。物件名用小寫字母。類的屬性和方法名以物件作為字首,物件通過操作符 訪問屬性和方法。類的私有變數,私有方法和兩個下劃線作為字首。...