关于网络传输过程中大端小端的问题,急急急!!

fangext520 2012-05-29 02:51:46
我要给服务器发消息,但是这个网络上传输的大端小端的问题咋解决。。java里面有啥方法?
...全文
274 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangext520 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
要编写一个函数,把字节顺序反过来。

uchar *ChangeBufferFloat(uchar *pStr,uchar k,uchar length)
{
uchar i=0,tempq,tempc;
uchar *kStr;
kStr = pStr;
for(i=0;i<length;)
{
tempq=*(kStr+k+i);
tempc=*(kStr+k+i+1);
……
[/Quote]
啊是c的啊。。不过这个问题解决了谢谢哈。。我是直接把十六进制的定义成一个byte就可以发过去了呵呵
waszyaw 2012-05-31
  • 打赏
  • 举报
回复
要编写一个函数,把字节顺序反过来。

uchar *ChangeBufferFloat(uchar *pStr,uchar k,uchar length)
{
uchar i=0,tempq,tempc;
uchar *kStr;
kStr = pStr;
for(i=0;i<length;)
{
tempq=*(kStr+k+i);
tempc=*(kStr+k+i+1);
*(kStr+k+i)=*(kStr+k+i+3);
*(kStr+k+i+1)=*(kStr+k+i+2);
*(kStr+k+i+2)=tempc;
*(kStr+k+i+3)=tempq;
i+=4;
}
return kStr;
}

uchar *ChangeBufferShort(uchar *pStr,uchar k,uchar length)
{
uchar i=0,tempq;
uchar *kStr;
kStr = pStr;
for(i=0;i<length;)
{
tempq=*(kStr+k+i);
*(kStr+k+i)=*(kStr+k+i+1);
*(kStr+k+i+1)=tempq;
i+=2;
}
return kStr;
}

ChangeBufferShort(TempBuffer,4,96);//从ktracebuff[4]开始的96字节

ChangeBufferFloat(databus,16,20);

fangext520 2012-05-29
  • 打赏
  • 举报
回复
额我是这样做的。。就是把int、long啥的都转换成字符串然后在转换成byte发过去。。这样的话就不需要转换大端小端了吗?
儿大不由爷 2012-05-29
  • 打赏
  • 举报
回复
按byte发,按byte收就行了
fangext520 2012-05-29
  • 打赏
  • 举报
回复
求大神帮忙解决啊

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧