インディの質問です。
呼び出しにタイムアウト パラメータを追加してTIdTCPClient
ReadLn
、スレッドが終了したことを頻繁に確認できるようにしました。ただし、タイムアウトが発生した場合、ReadLn
その時点からデータを取得することはありません。TIdTCPClient
をリセットして、もう一度行を探すにはどうすればよいですか?
procedure TClientListner.Execute;
var
msg : String;
begin
while not terminated do
begin
msg := fSocketCon.IOHandler.ReadLn('\n', 200);
if not fSocketCon.IOHandler.ReadLnTimedOut then
begin
DoSomeThing(msg);
end;
end;
end;