首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TCP套接字()上编码和发送XDR结构

在TCP套接字()上编码和发送XDR结构
EN

Stack Overflow用户
提问于 2013-07-04 10:05:27
回答 1查看 1.3K关注 0票数 0

我要提出以下问题:

我必须发送以下XDR消息:

代码语言:javascript
复制
struct Responde{
 float numbers<>;
 bool end;
}

我知道如何实现数组(xdr_array)和bool (xdr_bool),但我如何:

1)对结构进行编码? 2)通过套接字发送结构?

感谢所有这些,但我不知道XDR,我必须使用它。再次感谢。

注:标题如何显示我引用了C语言和Linux环境。

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 15:23:43

当然,最灵活的解决方案是使用rpcgen工具将XDR定义编译成C代码,然后可以在C应用程序中编译和使用。但是,如果不希望在项目中引入此依赖项,当然可以手工编写序列化代码。

RFC 1831将向您详细描述这种结构是如何序列化的,但下面是您需要了解的示例:

  • XDR中的所有数字都是按大端顺序编码的.
  • 结构中的所有字段都对齐为4个字节,并按照声明的顺序将字段连接起来。
  • float将数字编码为32位浮点数.
  • 浮动的可变长度数组被编码为32位整数,其中包含元素数和浮点数。
  • bool将布尔值编码为32位整数,其中真值编码为数字1,假值编码为数字0

例如,如果您的结构中填充了3个浮点数,并且值为true,您将得到以下字节流:

代码语言:javascript
复制
00 00 00 03  xx xx xx xx  yy yy yy yy  zz zz zz zz  00 00 00 01

其中xyz的序列是浮点数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17467493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档