我必须问以下问题:
我必须发送以下 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 位整数,其中真值编码为数字1
,假值编码为数字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