Я использую небольшой ftp-клиент для получения некоторых больших файлов с ftp. Я читал в RFC, что команда ABOR очень проблематична для серверов. Почти все серверы, которые я вижу, продолжают отправлять данные даже после отправки ABOR через контрольное соединение. Закрытие передачи данных может также привести (в 70% тестов) к закрытию контрольного соединения. Сервер просто отправляет пакет FIN после моего отправленного пакета ABOR. Каков наилучший способ прекратить получение какого-либо байта и не потерять управляющее соединение? FlashFXP делает это нормально на всех типах задержек соединения и серверов. При исследовании трафика TCP я обнаружил стандартный поток ftp rfc.
Но в моем случае все еще не удалось прервать передачу с использованием этой техники:
1) shutdown (passive_socket, SD_BOTH)
2) closesocket (passive_socket);
3) send (control_socket, "ABOR \" r \ n ")
4) recv (control_socket) - здесь остановлено
Спасибо