谁能帮我写个简单的按结构体发送与收受指针数据的例子?winsock2  udp  发送。弄好了可以给 10Q币哦。 
发送的指针数据为: sbuf:pointer,  ilen:DWORD;
结构体大概是这样吧?我也不:
TSendData = packed record
  cmd:char;
  rbuf:pointer ?
  rlen:DWORD;
end;接收以后:
if cmd='rd' then
将发送过来的  sbuf  转为 pByte 指针。谢谢了。

解决方案 »

  1.   

    Pointer 不能这样直接发送PChar 也不行,只能发数组可以把结构这样定义cmd 一般都用 Integer 或 DWORD包头 + 数据TSendDataHdr = packet record
      cmd      : DWORD;
      DataLen  : DWORD;
    end;发送的格式是 包头 + 数据明白没?
      

  2.   

    TSendDataHdr   =   packet   record 
        cmd             :   DWORD; 
        Databuf     :   array [0..100] of byte; 
    end; 那么如何将  pbuf : pointer 的数据传入  Databuf 再发送呢?
      

  3.   

    我有相关文章,不知道有帮助不...
    好像有几个函数可以对指针操作 Move(,,,)
    http://blog.csdn.net/fangkailove/archive/2007/11/29/1906826.aspx
      

  4.   

    procedure FillData(pBuf: Pointer; iLen: integer);
    var
      Data: TSendDataHdr;
      pDst: Pointer;
    begin
      Data.cmd:= ...;  pDst:= Data.Databuf;
      Move(pBuf^, pDst^, iLen);     //注意这里一定是值,不是指针!!!我已经遇到过好多次Move的问题了。 //.....
    end;