Здравствуйте, гость ( Вход | Регистрация )
me | Дата 2.3.2009, 18:20 |
Последовательность ID действительно одна для всех объектов QFtp (( Прийдётся через currentThreadId и дальнейший анализ что за команда выполняется.. меня вот кстати всегда мучал вопрос а не может ли случиться так, что если мы ловим сигнал от commandStarted и в слоте вызываем currentThreadId не может ли она хотя бы теоретически вернуть другую команду... |
|
me | Дата 2.3.2009, 17:49 |
Забыл вырезать из вывода QFtp(0x80564b0) - эт я решил в какой=то момент посмотреть на адреса объектов QFtp для каждого потока... | |
SABROG | Дата 2.3.2009, 17:47 |
Рекомендация по поводу использования NULL: http://www.prog.org.ru/topic_7458_0.html | |
me | Дата 2.3.2009, 16:35 |
В продолжение этой темы.. как-то всё не доходили руки сесть за всё это, но как наконец-то сел начались новые непонимания.. Вначале код: FtpThread.h:
FtpThread.cpp
main.cpp
Вывод в консоль=(((
Толи на оба QFtp даётся общая последовательность ID команд.. толи не знаю. Если это так то очевидно лучше использовать currentCommand () + слоты на запуск команды и конец команды...? Что я делаю не так?? |
|
Константин | Дата 18.2.2009, 18:02 |
Всем спасибо! жми соответствующую кнопочку |
|
me | Дата 18.2.2009, 17:41 |
Всем спасибо! Тему я думаю на этом закрыть можно.. | |
Константин | Дата 18.2.2009, 16:49 |
а дальше уже ловить успешное подключение и действовать дальше ? не забыв конечнео же сделать connectы всё какие нужно... именно. в таком случае при невозможности соединиться (connectToHost) можно выйти и завершить поток, даже не запуская его петлю событий (т.к. вряд ли тебе нужен поток с неподключённым фтп-клиентом) |
|
me | Дата 18.2.2009, 16:48 |
Цитата Классы QHttp и QFtp предоставляют поддержку протоколов HTTP и FTP на клиентской стороне. Так как эти два протокола используются для решении похожих задач, классы QHttp и QFtp имеют много общих особенностей: * Неблокирующее поведение. QHttp и QFtp асинхронны. Вы можете отправить ряд команд (также называемые "запросы" для HTTP). Команды выполнятся позже, когда управление вернется к циклу событий Qt. * ID команд. Каждая команда имеет свой уникальный номер ID, который используется для слежения за выполнением команд. Например, QFtp передает сигналы commandStarted() и commandFinished() с ID команды для каждой выполняемой команды. У QHttp тоже имеются подобные сигналы requestStarted() и requestFinished(). * Индикаторы процесса передачи данных. QHttp и QFtp посылают сигналы при передаче данных (QFtp::dataTransferProgress(), QHttp::dataReadProgress() и QHttp::dataSendProgress()). Вы можете соединить данные сигналы, например, с QProgressBar::setProgress() или QProgressDialog::setProgress(). * Поддержка QIODevice. Оба класса поддерживают загрузку в и скачивание из QIODevice, дополнительно к API, основанному на QByteArray. Есть два основных способа использования QHttp и QFtp. Самый обычный способ состоит в том, чтобы отслеживать ID команд и следить за выполнением каждой команды, соединившись с соответствующим сигналом. Другой способ состоит в том, чтобы запланировать все команды сразу и соединиться только с сигналом done(), который посылается, когда все команды были выполнены. Первый способ требует большего количества работы, но дает больший контроль над выполнением конкретных задач и позволяет вводить дополнительные команды, основанные на результате предыдущих. Что позволяет обеспечить пользователю детализированную обратную связь. Чёрт, как-то забыл совсем что есть общая статья про сетевое взаиможействие и совсем упустил из виду что тамCC написанно. |
|
me | Дата 18.2.2009, 16:43 |
не забыв конечнео же сделать connectы всё какие нужно... | |
me | Дата 18.2.2009, 16:42 |
по всей видимости, тут ещё имеют место проблемы с пониманием асинхронное работы сокетов кутэ. Так оно и есть... тем более, что ftp будет создан в родительском потоке Я там торопился... не указатель а просто QFtp ftp; Тоесть сделать так:
а дальше уже ловить успешное подключение и действовать дальше ? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 24.4.2024, 13:56 |