社区
网络编程
帖子详情
数据包解析中2byte中的数据如何转成short
defendmidfield
2004-07-23 09:46:01
一个数据包中有2byte的数据为后面数据的长度
如何把这个数据转成unsighed short?
谢谢指教...
我的思路
char ch[2];
memset ..
memcpy(ch,p,2);
然后使用atoi??
...全文
220
13
打赏
收藏
数据包解析中2byte中的数据如何转成short
一个数据包中有2byte的数据为后面数据的长度 如何把这个数据转成unsighed short? 谢谢指教... 我的思路 char ch[2]; memset .. memcpy(ch,p,2); 然后使用atoi??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
defendmidfield
2004-07-23
打赏
举报
回复
ok
结帐
3q
shootingstars
2004-07-23
打赏
举报
回复
网络主机字节的问题主要是由于int,short等在各种系统中存储的方式不一样造成的。
char数组不存在这个问题。
defendmidfield
2004-07-23
打赏
举报
回复
谢谢了
那么对于char数组类型的数据就不需要网络字节了??
是不是因为跨平台都是一样处理啊?
呵呵,如此简单的问题还需要确认一下。
shootingstars
2004-07-23
打赏
举报
回复
如果这个len是你在发送方构造的,并且发送和接收方都是同一种系统(比如windows),那么你不需要使用ntohs函数。
直接u_short len = *((u_short *)data);转换一下就可以了
如果你的系统需要跨平台,那么最好在传输之前对short,int之类的数据使用htons,htonl之类的函数转换成网络字节传输,在接收时使用ntohs,ntohl转换回来。
defendmidfield
2004-07-23
打赏
举报
回复
to shootingstars(有容乃大,无欲则刚)
如果采用network byte
收到的数据包,即上面说的data怎么转? ntohs?
defendmidfield
2004-07-23
打赏
举报
回复
to Zacking(风舞璇玑)
你说的方法可以实现
to zwzzwz()
你收包的应该是 *((u_short*)p)
to shootingstars(有容乃大,无欲则刚)
谢谢
shootingstars
2004-07-23
打赏
举报
回复
byte *data; // 这是你的数据的指针
u_short len = *((u_short *)data);
是否需要使用ntohs要看你的数据的传输格式(大小头的问题),如果是按照网络字节传输的,你需要使用ntohs再转化一下。
u_short len = ntohs(*((u_short *)data));
zwzzwz
2004-07-23
打赏
举报
回复
unsigned char *p;
发包:
unsigned short a;
memcpy(p,&a,sizeof(a));
收包时
unsigned short a;
a=(unsigned short)(*p);
就可以了
msdn_user
2004-07-23
打赏
举报
回复
u_short ntohs(
u_short netshort
);
u_short real_len = ntohs((u_short)len)
Zacking
2004-07-23
打赏
举报
回复
呵呵,应该是i <<= 8;
Zacking
2004-07-23
打赏
举报
回复
unsigned short i;
char byte1;
char byte2;
i = byte1;
i << 8;
i += byte2;
呵呵,不知道行不行
defendmidfield
2004-07-23
打赏
举报
回复
一个数据包格式如下
================
len | data
================
len是data的占用字节数,len占用2byte
我怎么解析出len?
lanstar200
2004-07-23
打赏
举报
回复
不懂,說得明白些
UDP接收
解析
数据
包
--
byte
数组转换问题
在使用linux服务器接收
数据
包
时,接受的是一个
byte
类型的数组。所以当我们对这个数组进行
解析
时,会根据不同字段的大小来选择合适的类型去进行转换。比如8位的字段就应该转为
byte
类型。比如16位的字段就应该转为...
TCP通信
中
的
数据
包
解析
(处理拆包粘包)
//当跳过后,如果
数据
包
又不符合长度的,结束本次协议
解析
if(buffer.readable
Byte
s() ){ return ; } }
short
flowid = buffer.read
Short
();
byte
version_major = buffer.read
Byte
();
byte
version_minor = buffer...
java
byte
序列化_GitHub - javasundar/ObjectSerialize:
byte
数据
序列化成对象,对象转化成二进制
数据
...
蓝牙等二进制
数据
处理工具,可以把Object里的所有字段值转化成二进制值,然后拼起来,形成一个二进制
数据
包
,并且可以把二进制
数据
流填充到实体对象进,形成了序列化与反序列化的工具集类型支持支持
byte
, char...
《音视频:从RTP
数据
包
中
解析
H264裸流》
本文旨在从传输h264编码的RTP
数据
包
中
,
解析
出h264裸流
数据
。对于传输h264
数据
的rtp
数据
包
,一般有三种类型,单包、单一时间的组合包(STAP-A)、FU-A分片包。本文提取出这三种类型的
数据
,保存到文件
中
,得到的h264...
Netty自定义
数据
包
分包现象:一个
数据
包
中
的
数据
被间隔。 粘包和分包出现的原因是:没有一个稳定
数据
结构。
数据
包
的结构: 自定义
数据
包
=包头+模块号+命令号+长度+
数据
包头:4个字节 模块号:2个字节
short
,区分请求类型 命令号:2个...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章