У меня есть это TCPServerExecute
событие, выполнение которого я хочу остановить после того, как вручную отключу соединение с клиентом:
procedure TMainForm.TCPServerExecute(AContext: TIdContext);
var
TCPClient : TIdTCPClient;
begin
try
TCPClient := nil;
try
TCPClient := TIdTCPClient.Create(nil);
if aConditionIsMet then begin
AContext.Connection.IOHandler.WriteLn('Disconnected from server.');
AContext.Connection.Disconnect;
Exit;
end;
finally
FreeAndNil(TCPClient);
end;
except on e : Exception do
begin
MainForm.Log('error in Execute=' + e.Message);
end;
end;
end;
и на стороне клиента все в порядке, но на стороне сервера я бесконечно перебираю TCPServerExecute. Что я делаю не так и как я могу остановить выполнение TCPServerExecute
после ввода AContext.Connection.Disconnect
?
TCPServer.Active := False
, и сервер отключит всех подключенных клиентов. - person mjn   schedule 19.05.2014AContext.Connection.Disconnect
не способ это сделать? - person Viktor Anastasov   schedule 19.05.2014aConditionIsMet
каким-то образом необходимо знать, принадлежит ли текущий AContext тому соединению, которое следует отключить. Так что это будет функция типаConditionIsMet(AContext: TIdContext)
- person mjn   schedule 19.05.2014