программирование ftp: как прервать передачу файлов?

Я использую небольшой 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) - здесь остановлено

Спасибо

5
задан Sergey 15 July 2011 в 23:18
поделиться