当服务端接收到客户端传来的字符串流后,返回一字符串给客户端以确认服务端已收到字符串流,但该确认的字符串服务端发不出去,何因??代码如下:
客户端:
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;
客户端:
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;
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;
原因学习中