[英]Encode and send an XDR struct over a TCP socket (C - Linux)
我必須問以下問題:
我必須發送以下XDR消息:
struct Responde{
float numbers<>;
bool end;
}
我知道如何對數組(xdr_array)和布爾(xdr_bool)進行編碼,但是我該如何:
1)編碼結構? 2)通過套接字發送結構?
感謝所有人,但是我不了解XDR,因此必須使用它。 再次感謝。
Nb:標題顯示方式我指的是C語言和Linux環境。
當然,最靈活的解決方案是使用rpcgen
工具將XDR定義編譯為C代碼,然后可以對其進行編譯並在C應用程序中使用。 但是,如果您不想在項目中引入這種依賴性,則當然可以手動編寫序列化代碼。
RFC 1831將為您提供有關如何序列化此結構的詳細說明,但這是您需要為示例了解的內容:
float
將數字編碼為32位浮點數。 bool
將布爾值編碼為32位整數,其中,將true值編碼為數字1
,將false值編碼為數字0
。 例如,如果您的結構填充了3個浮點,並且值為true,則將獲得以下字節流:
00 00 00 03 xx xx xx xx yy yy yy yy zz zz zz zz 00 00 00 01
其中x
, y
和z
的序列是浮點數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.