我写过这样的代码,服务器是java客房端是C++
有两种方法解决
1.把整个都作为一个串处理

{
   ServiceID=1001;
   ErrCode = 1;
   SerialNumber = "fsasafsafsafsafsafas";
}
串行化为:"1001"+"0001"+"fsasafsafsafsafsafas" //字符串填充一定数量的"填充符"
然后将其发送,在服务器端(java ?)以相反的顺序读出,这样的方式比较通用,但有一个缺点
ServiceID必须是0-9999,不过对于你的应用应该是足够了
另外一种采用类似 C中的处理方法,将int形转换成一个大小为四的BYTE数组,这样就可以避免
上述方法的缺陷,
如int code = 23;
则转化为数组为:[2][1][0][0]
收到后相反的方式处理我这里有java的代码,C的类是
   static int[] _MoveX={0xff,0xff00,0x0ff0000,0xff000000};
   static byte[] uintoBytes(int IntegerSize)
   {
      byte Byte4Size[] = new byte[4];
      for(int i = 0 ;i<4;i++)
      Byte4Size[i] = (byte)((IntegerSize & _MoveX[i]) >> (i*8));
         return Byte4Size;
   }
   static int byte4toInt(byte[] Byte4Size)
   {
      int integer = 0;
      for(int i = 0;i<4;i++)
      {
         int int_temp = 0;
         int_temp = int_temp | ((int)Byte4Size[i] & 0xff);
         integer = integer | (int_temp<<(i*8));
      }
      return integer;
   }欢迎指正!