How to disconnect the TCPClient Totally ? (Indy)

When my Tcpclient is working , with this code :

TCPClient.Disconnect;
TCPClient.Connect;

I get "raised exception class EIdAlreadyConnected with message 'Already connected.'." error still (whereas , it has been disconnected before) .

So , how can i disconnect it totally ?

Thank you

13
задан Kermia 26 August 2010 в 12:01
поделиться

2 ответа

используя indy 10, вы должны убедиться, что буфер ввода пуст.

if idTcpClient.connected then
begin
 idTcpClient.IOHandler.InputBuffer.clear;
 idTcpClient.Disconnect;
end;
18
ответ дан 1 December 2019 в 22:54
поделиться

Вы говорите, что он отключен, а вы только дали команду на отключение.

Сетевой трафик требует времени, и, вероятно, вы повторно подключились до того, как действительно отключились.

Возможно, вам нужно отслеживать какое-то состояние соединения или событие, чтобы дождаться момента, когда вы действительно отключитесь.

... или попытаться обработать исключение и проигнорировать его, используя try..except

1
ответ дан 1 December 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: