对方发信息,应为发送的信息长度不定,怎样接收哦var
  Head:array[1..1024] of char;
begin
  if not AThread.Terminated and AThread.Connection.Connected then
  begin
    AThread.Connection.ReadBuffer(Head,103);
    Memo1.Lines.Add(Head)
  end;
end;103表示长度,现不固定,怎样写
如这个长度不和发送的消息长度一样的话,MEMO1就不能显示

解决方案 »

  1.   

    发送的时候,把第一个字节做为数据的长度,
    接受的时候就接受两次来完成
    第一次是接受长度,可以是一个字节或者两个字节,最好就是SizeOf(Integer);
    读到长度之后,以这个长度来读后面的数据,这样就正确了!
      

  2.   

    发送  
    Head := 'abcdef'; 
    size := Length(Head);
    AThread.Connection.WriteBuffer(size,sizeof(Integer));
    AThread.Connection.WriteBuffer(Head,size);
    Memo1.Lines.Add(Head)接收:
    Head: array of char;
    AThread.Connection.readBuffer(size,sizeof(Integer));
    SetLength(Head,size);
    AThread.Connection.readBuffer(Head,size);
    Memo1.Lines.Add(Head)