type PMsg = ^TMsg; TMsg = record id : Integer; len : Integer; end; //... var Buf : Pchar; BufLen : Integer; msg : TMsg; begin BufLen := Socket.ReceiveLength; GetMem(Buf , BufLen); Socket.ReceiveBuf(Buf , BufLen); msg := PMsg(Buf)^; end;
上面从缓冲区中读取数据时时就出现内存访问错误,到底应该怎样查看缓冲区里面的内容啊?
下面是服务端发送。
//... var Buf : Pchar;; msg : TMsg; begin GetMem(Buf , sizeof(TMsg)); PMsg(Buf)^.id := 1; PMsg(Buf)^.len := 4; Socket.SendBuf(Buf , sizeof(TMsg)); end;
找了好久,不知道哪里出了问题,大哥们帮帮忙,不胜感激。
好像没有人理我,但是我还是自己解决了。