Всегда рекомендуется выполнять все задачи отправки/получения в OnExecute
обработчике событий TIdTCPServer
, но я не понимаю следующее:
Как дождаться определенной последовательности на входе и при этом отправить какие-то данные тому же клиенту? Мне нужна не последовательность команд-ответов, а мне нужно:
- постоянно отправлять данные в реальном времени
- при получении отредактированных данных обратно
- получение команд и предоставление ответов на них.
Например, если мы ждем CR-LF:
procedure TSocketServer._serverExecute(AContext: TIdContext);
var
msg: string;
begin
msg := AContext.Connection.IOHandler.ReadLn();
//Here we are only if CRLF was detected.
//How to send while we are waiting?
_log(msg);
end;
IOHandler.ReadLn()
вызовитеIOHandler.CheckForDataOnSource()
с тайм-аутом и проверьте с помощьюIOHandler.InputBufferIsEmpty()
- person Remy Lebeau   schedule 12.04.2019