用c语言写的socket编程。传输的数据流是自定义tlv格式的,len有没有必要转换成网络字节序
我send的流是用自定义tlv格式的,
假如说我要send的是buf ,buf的头4个字节存储的是type,再4个字节是value的length,在就是value
比如char buf[64];
type使用了自定义的数字宏,
#define TYPE 0x1
len是用了整形
int length= 20;
都是mem函数上去的.
int type = TYPE;
memcpy(buf,&type,4);
memcpy(buf+4,&length,4)
value是什么就先不管了。
这里最终我是要将这个buf发送出去的,但是buf不buf的前4个字节,和迪5到8字节都是memcpy进去的整数,
我需要转换为网络字节序吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
转换是为了兼容不同的平台,可以约定均为小端或者均为大端,然后从代码里面做兼容
cccc
一个标准的协议应该是基于字节的,电信SMGP协议里就有tlv可选参数,最后还是byte数组
要转,你也可以保存为字符串
肯定的
一个系统上的就不用转了,不同的话要转一下