我要给服务器发消息,但是这个网络上传输的大端小端的问题咋解决。。java里面有啥方法?

解决方案 »

  1. 额我是这样做的。。就是把int、long啥的都转换成字符串然后在转换成byte发过去。。这样的话就不需要转换大端小端了吗?
      

  2. 要编写一个函数,把字节顺序反过来。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);
      

  3. 啊是c的啊。。不过这个问题解决了谢谢哈。。我是直接把十六进制的定义成一个byte就可以发过去了呵呵
      

类似问题 »