c++ 結構體struct Info {
int id; char name[20];
};java Bean類class Info { private int id; private String name; //Getter Setter}一個簡單的想法就是java 客戶端 讀取發(fā)送過來的字節(jié)數(shù)據(jù) 然后針對性的做大小字節(jié)變化,并取出多少字節(jié)復制給id或name
2 回答

白衣非少年
TA貢獻1155條經(jīng)驗 獲得超0個贊
純粹struct的話,兩邊統(tǒng)一下字節(jié)對齊和字節(jié)序,使用二進制協(xié)議也可以.
你可以把要傳輸?shù)倪@段內容看成是一個很長的字符串。
當然,java在解釋二進制的結構體的時候,你是不能直接像c/c++一樣, (struct xxx*)buff就完成轉換,可能需要你深刻理解c++的內存layout,這相對復雜了。
實際上,通用的做法是實用一個第三方的標準編碼,和語言無關的,比如google開源的 protocbuffer,以及平常我們用的json,xml都是可以的。

慕姐4208626
TA貢獻1852條經(jīng)驗 獲得超7個贊
這個玩意貌似叫protoBuffer,比較好的辦法是,你得有一個第三方的描述性文件,描述這個結構,比如
<info type="info"> <id type="int32" /> <name type="string" /> </info>
通信的兩端必須得理解這個結構的,然后在傳輸?shù)臅r候,序列化一下,在按照一定的規(guī)則讀一下就OK。
添加回答
舉報
0/150
提交
取消