Как правильно отключить TidTcpClient от TIdTcpServer?
Я имею в виду, если я вызываю Disconnect на стороне клиента, я получаю 10054 connection reset by peer
на событии onexception сервера.
если я вызываю отключение на AContext (используя очередь / событие OnExecute), сервер возвращает connection closed gracefully
на событие onexception.
Мой текущий протокол не использует события OnConnect и OnDisconnect, только OnExecute с IdTCPServer1.ContextClass := TClientContext;
Я имею в виду, потому что когда я возвращаю количество подключенных клиентов, используя список Контекстов, всегда возвращаю неверное число, поэтому теперь я использую:
InterlockedIncrement(FClientCount);
TThread.Synchronize(nil, UpdateUI);
Увеличение при событии OnConnect и уменьшение при событии OnDisconnect.
Так как при OnException вызывается OnDisconnect, тоже уменьшаем число.
Может быть, если счетчик отключений TIdTcpClient будет правильно работать, при использовании списка контекстов нет?