Russian Qt Forum

Qt => Работа с сетью => Тема начата: G-virus от Апрель 15, 2010, 23:58



Название: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: G-virus от Апрель 15, 2010, 23:58
Всем привет. Два легких вопроса.
1) QFtp. В конструкторе класса выполняю ftp.connectToHost() и ftp.login().
в деструкторе ftp.close() и ftp.disconnect().
Вопрос: В функциях описанных в этом классе есть функции для загрузки и скчивания файла. Первый раз загружаю или скачиваю - все ок. При втором разе ничего не скачивает или не загружается, что  делаю не так?
2)QTcpServer. Создаю объект server. Какой метод проверяет, подключен ли к данному QTcpServer клиент? Рылся - не нашел  ;D

Заранее спасибо  :)


Название: Re: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: SimpleSunny от Апрель 16, 2010, 00:03
1. Без помощи экстрасенсов никуда =). Посмотри сниффером трафик.
2. void QTcpServer::newConnection ()   [signal] или bool QTcpServer::hasPendingConnections () const   [virtual]. Или имелось в виду подключен какой-то конкретный клиент? Если да, то то проще самому реализовать запоминалку подключенных клиентов. Хотя можно пробежаться по детям QTcpServer, найти QTcpSocket и проверять на конкретного клиента.


Название: Re: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: Akaiten от Апрель 16, 2010, 08:41
1.а Возможно у сервера стоит timeout, и он отключает клиента.
1.б Помню возникал проблемы с QFtp при нескольких последовательных запросах, конкретно не помню как разрешил, но если ты вызываешь ftp команды (QFtp::get, QFtp::put и т.п.) из слота-обработчика сигнала от QFtp, то попробый вызвать их в другом месте (не в обработчике сигнала от QFtp) или хотябы через QTimer::singleShot(0, ...).


Название: Re: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: G-virus от Апрель 16, 2010, 12:21
Или имелось в виду подключен какой-то конкретный клиент?

нет нет, именно требовалось проверять, к данному серверу подключено что-то или нет :) Спасибо

1.а Возможно у сервера стоит timeout, и он отключает клиента.
1.б Помню возникал проблемы с QFtp при нескольких последовательных запросах, конкретно не помню как разрешил, но если ты вызываешь ftp команды (QFtp::get, QFtp::put и т.п.) из слота-обработчика сигнала от QFtp, то попробый вызвать их в другом месте (не в обработчике сигнала от QFtp) или хотябы через QTimer::singleShot(0, ...).

А какая собственно разница? Что в QTimer, что в слоте. QTmer то все равно вызовет слот :) Или я чего-то не понял?


Название: Re: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: Akaiten от Апрель 16, 2010, 13:20
А какая собственно разница? Что в QTimer, что в слоте. QTmer то все равно вызовет слот :) Или я чего-то не понял?

Я имел ввиду не вызывать новые команды QFtp в обработчике сигнала QFtp::done или QFtp::commandFinished и т.п.


Название: Re: Вопрос по QFtp, и маленький вопросик по QTcpServer
Отправлено: G-virus от Апрель 16, 2010, 13:46
Видимо были какие-то лаги. Опять запустил, потестил - все пашет.