错了不是!
c:TUserInfo
在clientsocket端
...
socket.SendBufReceiveBuf(c,sizeof(c));
...在serverSocket端
...
socket.ReceiveBuf(c,sizeof(c));//读这个结构
...
其实最重要的是在Server端读出数据。这个没有错误的。我是通过测试的。
c:TUserInfo
在clientsocket端
...
socket.SendBufReceiveBuf(c,sizeof(c));
...在serverSocket端
...
socket.ReceiveBuf(c,sizeof(c));//读这个结构
...
其实最重要的是在Server端读出数据。这个没有错误的。我是通过测试的。
老兄最近和指针做上对,呵呵!一个接一个问题. gz and up
改成StrCopy(f,'hi delphi ');把p.username:='Mydelphi';
改成StrCopy(p.username,'Mydelphi');
我跟踪 socket.ReceiveBuf(buf,size);的时候发现
buf的指针值发生了变化,经过仔细研究发现参数传输错误,
定义: ReceiveBuf(var Buf; Count: Integer): Integer;
buf值不应该是指针,而应该是对象的实例,因为var的作用就是取对象的指针的,如果再传指针就是指针的指针了。该正如下:
1.clientsocket1.Socket.SendBuf(buf^,sizeof(tuserinfo)+10);
2.socket.ReceiveBuf(buf^,size);
错误全没了。
尤其要多谢findcsdn(findcsdn),纠正了我一个根深蒂固的错误思想,我想破头也想不到是这儿错的。