我刚刚设法让客户端(IdTCPClient)根据需要将消息发送到服务器(IdTCPServer)。但是,如何让客户等待响应或适当地超时呢?
干杯,
阿德里安
最佳答案
客户端可以使用IOHandler.Readxxx方法读取响应,其中大多数方法都可以设置超时。也可以直接在IdTCPClient.IOHandler上指定读取超时。
procedure TForm1.ReadTimerElapsed(Sender: TObject);
var
S: String;
begin
...
// connect
IdTCPClient1.Connect;
// send data
...
// use one of the Read methods to read the response.
// some methods have a timeout parameter,
// and others set a timeout flag
S := IdTCPClient1.IOHandler.ReadLn(...);
if IdTCPClient1.IOHandler.ReadLnTimedOut then
...
else
...
end;
另请参阅:How can I wait for a string from a server with IdTCPClient?