首先确认接收到的长度是否是SizeOf(body.Head),不是的话,其他问题。
是的话,数据应该是对的,你把接收到的数据发上来看看

解决方案 »

  1.   

    发送日志:
    2013-12-06 13:40:41 Socket send: socket=2128 head(Length=12,Command=2290614273,Sequence=1) DataLength=0 Result=12
    接收到的却是:
    201326592 16812168 16777216不都是无符号整型吗?我看不错哪里有错误。Cardinal是无符号整型,长度4位没错吧?我接收也是按照无符号整型接收的
      

  2.   

    不是吧,你的发送端和接收端 采用的大小段不一致Windows系统上默认是小段在前,2个前提:如果服务段是PC,客户端为其他小段在后的设备如手机,
    PC上用以下函数转换每个DWORD,
    function bswap(dw : DWORD) : DWORD;register;
    asm
      BSWAP   EAX
    end;
    201326592转换后得到12,16812168->2290614273,16777216->1