ClientSocket.Socket.SendBuf(tagAGENT_PACKET,1000);
=>
ClientSocket.Socket.SendBuf(tagAGENT_PACKET,sizeof(TtagAGENT_PACKET));

解决方案 »

  1.   

    CHAR 数组在delphi中的定义就像1楼写的那样
      

  2.   

    array[0..32] of char 和string[33]在内存中的格式是不一样的
      

  3.   

    TtagAGENT_PACKET = record    ==> TtagAGENT_PACKET = packed record
      

  4.   

    应该是字节对齐的问题,按照5楼的加上packed关键字,或者:Project->Options->Compiler->Code generation->Record Field Alignment设置成1 (默认是8)
      

  5.   

    tcp你看看indy的idtcpserver这个控件
    udp你看看indy的idudpserver
      

  6.   


    1、用同步方式TIdTCPClient,那就不断扫描监听。
    2、异步方式TClientSocket,会产生OnRead事件,在事件里读出数据。