当服务端接收到客户端传来的字符串流后,返回一字符串给客户端以确认服务端已收到字符串流,但该确认的字符串服务端发不出去,何因??代码如下:
客户端:
    IdTCPClient1.Connect;
    if (IdTCPClient1.ReadLn = 'OK') then
    begin
        Str := 'asdfasdfasd$%13123132112311313131###252345234!';
        AStream := TStringStream.Create(Str);
        IdTCPClient1.OpenWriteBuffer;
        IdTCPClient1.WriteStream(AStream);
        IdTCPClient1.CloseWriteBuffer;
        AStream.Free;
    end;
    Strs := IdTCPClient1.ReadLn;
    IdTCPClient1.Disconnect;服务端:
    AThread.Connection.WriteLn('OK');
    Astrem := TStringStream.Create('');
    AThread.Connection.ReadStream(Astrem, -1, True);
    Astrem.Seek(0, soFromBeginning);
    SStr := Astrem.DataString;
    Astrem.Free;
    Edit1.Text := SStr;
    AThread.Connection.WriteLn('Over');
    AThread.Connection.Disconnect;

解决方案 »

  1.   

    服务端:
        AThread.Connection.WriteLn('OK');
        Astrem := TStringStream.Create('');
        AThread.Connection.ReadStream(Astrem, -1, True);
        Astrem.Seek(0, soFromBeginning);
        SStr := Astrem.DataString;
        Astrem.Free;
       //问题在这里把这行屏蔽掉可以了就  Edit1.Text := SStr;  
        AThread.Connection.WriteLn('Over');
        AThread.Connection.Disconnect;
      原因学习中
      

  2.   

    IdTCPServer是多线程的, Edit1不是。