QTcpSocket (определения разрыва соединения с FTP сервиром)

Модератор: Модераторы разделов

Аватара пользователя
GodHermes
Сообщения: 68
ОС: openSuSE 11.2 x86_64

QTcpSocket

Сообщение GodHermes »

Пишу FTP клиент. Вопрос:
как определить что соединения разорвано ?
Поясняю: прога работает, отображает каталоги, переходит по ним. Но если "постоит" (т.е. пройдет таймаут) и попытаться перейти в другой каталог или обновить папку вылетает с error'ом.
Какое свойство указывает на то что коннекта нет ?
почему-то конструкция:
if(mySocket.isWriteble) или if(mySocket.isReadeble) не помогает...
Знать всё невозможно, можно только вовремя находить то что необходимо
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: QTcpSocket

Сообщение NickLion »

Это еще Qt3?
Когда производится чтение из сокета и recv возвращает длину 0 - значит удаленный хост закрыл подключение. Должно быть нечто аналогичное.
Спасибо сказали:
Аватара пользователя
GodHermes
Сообщения: 68
ОС: openSuSE 11.2 x86_64

Re: QTcpSocket

Сообщение GodHermes »

NickLion писал(а):
13.07.2009 16:11
Это еще Qt3?
Когда производится чтение из сокета и recv возвращает длину 0 - значит удаленный хост закрыл подключение. Должно быть нечто аналогичное.

нет, это уже последняя Qt 4.5
но попробую что-нить поковырять в этом направлении, спасибо!
Знать всё невозможно, можно только вовремя находить то что необходимо
Спасибо сказали:
Аватара пользователя
fbi
Сообщения: 34

Re: QTcpSocket

Сообщение fbi »

А откуда в Qt 4.5 у вас взялся QSocket? Открываю Assistant, в поиске набираю QSocket и... о чудо... нет QSocket! Есть класс поддержки Qt3Socket, но тогда зачем его использовать, если есть более заманчивый QTcpSocket? А конкретно для вашего случая есть класс QFtp! Как и в QTcpSocket так и в QFtp есть все что вам необходимо!
Спасибо сказали:
Аватара пользователя
GodHermes
Сообщения: 68
ОС: openSuSE 11.2 x86_64

Re: QTcpSocket

Сообщение GodHermes »

прошу прощения, да действительно QTcpSocket...
просто вчера, когда писал пост не было исходника под рукой...
а мысли вспомнили эту проблему, решил задать :-)
и к сожалению я не могу использовать по заданию QFtp (хотя соблазн имеется =) )
Знать всё невозможно, можно только вовремя находить то что необходимо
Спасибо сказали:
Аватара пользователя
fbi
Сообщения: 34

Re: QTcpSocket

Сообщение fbi »

сигнал void disconnected (), у родителя QAbstractSocket обрабатывать пробовали? И обрабатывайте все таки не через isWriteble или isReadeble, у QAbstractSocket, есть метод state (), вам по всему туда!
Спасибо сказали:
Аватара пользователя
GodHermes
Сообщения: 68
ОС: openSuSE 11.2 x86_64

Re: QTcpSocket

Сообщение GodHermes »

fbi Спасибо за помощь! Буду разбираться! ;-)
Знать всё невозможно, можно только вовремя находить то что необходимо
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: QTcpSocket

Сообщение Denjs »

Можно ещё йекзамплы смотреть. помогаёет, да.
Например "фортуне-сервер".
Там сигнал disconnected() залинкован на самого себя на deleteLater()
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали: