Вы не можете использовать метод SendCmd () с TIdTelnet.TIdTelnet использует внутренний поток чтения, который непрерывно читает данные из сокета (поскольку Telnet - это асинхронный протокол, который может принимать данные в любое время).SendCmd () выполняет собственное внутреннее чтение, чтобы получить ответ отправленной команды.Две операции чтения мешают друг другу (эта проблема также существует в компоненте TIdCmdTCPClient в Indy 10 по той же причине).
Чтобы отправить исходящую команду с помощью TIdTelnet, необходимо использовать метод SendCh () для отправки каждого символаиндивидуально (если вы обновитесь до Indy 10, в TIdTelnet есть метод SendString (), который обрабатывает это для вас), а затем подождите, пока событие OnDataAvailable не обработает ответ по мере необходимости.
Если TOR фактически не использует настоящий Telnetпротокол (последовательности Telnet и все), тогда вам лучше использовать TIdTCPClient вместо TIdTelnet.TIdTelnet - это специфичный для Telnet клиент, а не универсальный TCP / IP-клиент, такой как TIdTCPClient.