只能一个一个字节去解释:byte buffer[] = new byte[56];
//假设buffer里是接收到的字节流long dwTid = 0;//DWORD为4字节,java里的long也是4字节
dwTid |= buffer[0]&0xff;
dwTid <<= 8;
dwTid |= buffer[1]&0xff;
dwTid <<= 8;
dwTid |= buffer[2]&0xff;
dwTid <<= 8;
dwTid |= buffer[3]&0xff;byte char1 = buffer[4];//在c中char为1字节,所以在java里用byte来保存byte by1 = buffer[5];// 我不知道在你的结构体里的byte是不是char类型,
                     //在这里暂且当作是charchar sh1 = 0;//c里的short为2字节,java里的char是2字节
sh1 = buffer[6]&0xff;
sh1 <<= 8;
sh1 = buffer[7]&0xff;byte szName[] = new char[48];//c中的char[48]映射为java中的byte[48]
System.arraycopy(buffer, 8, szName, 0, 48);