使用指针,将指针指向结构,然后将指针指向的这个数据块传出去。这样不要管是什么类型,接收端使用同样的结构指针还原即可。var p : ^TStru1;
    tagStru : TStru1;
begin
................
   p:=AllocMem( SizeOf(TStru1) );
   result := p;
   with tagStru do begin //结结构赋值
       ...........
   end;
   move(tagStru, p^, SizeOf( TStru1 ));   .................. //将tagStru拷贝到p^后,将p^传出去,不要管是什么类型。
end;客户端接收时将接收到的数据强行的拷贝到结构指针里即可
    

解决方案 »

  1.   

    我最近刚好也在学socket编程。
    type 
      MyRec=Record
       s1,s2:string;
       x1,x2:integer;
      end;
    var
      MBuf:MyRec;
    ...............
    if clientsocket.connected then clientsocket1.socket.sendbuf(MBuf,Sizeof(MBuf));
    ...............serversocektOnClientRead();
    Type
      ......
    Var
      MBuf:MyRec;
    begin
      .....................................
      Socket.receivebuf(MBuf,sizeof(MBuf));
      .....................................
    end;
      

  2.   

    Mbuf :char [0..1000] of char;Socket.sendbuf(MBuf,Sizeof(MBuf));Socket.receivebuf(MBuf,sizeof(MBuf));
      
      

  3.   

    to DelMan:
      是不是应当将MBuf:array[0..99] of MyRec,而且将一个以指数组赋给他