使用Tserversocket接收Tclientsocket发送的流数据时,总是出错,请教大侠如何解决!(200分)

  • 主题发起人 主题发起人 红蜻蜓
  • 开始时间 开始时间

红蜻蜓

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用Tserversocket接收Tclientsocket发送的流数据时,总是出错,请教大侠如何解决!

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
MyRecord : TMyRecord;
fStream : TMemoryStream;
begin
fStream := TMemoryStream.Create;
fStream.SetSize(Socket.ReceiveLength); //按接收数据大小设置流的大小

Socket.ReceiveBuf(fStream,Socket.ReceiveLength); //把接收数据放入流中
fStream.Read(MyRecord,fStream.Size); //把流中数据读入变量中 {出错位置}

edit1.Text := datetimetostr( MyRecord.datetime );
edit2.Text := MyRecord.data;
end;
 
你的MyRecord是怎么定义的?如果是一个定长的结构的话,可以直接用
ReceiveBuf(MyRecord, SizeOf(MyRecord))或
ReceiveBuf(MyRecord, Socket.ReceiveLength)来接收看看。
应该注意MyRecord的大小是否与收到的流的大小一致。
 
什么错误?
 
谢谢,通过你的指点,我已经解决了这个问题。
 
后退
顶部