Russian Qt Forum

Qt => Работа с сетью => Тема начата: andrew.k от Марта 28, 2011, 14:53



Название: QTcpSocket
Отправлено: andrew.k от Марта 28, 2011, 14:53
Использую сабж.
Вызывают connectToHost, сокет переходит в состояние ConnectingState.
Узел к которому я подключаюсь находится грубо говоря за файерволом, который может блокировать канал.
В этом случае, сокет не может определить, что узел не доступен и так и висит в ConnectingState.
Отсюда проблема. Не получается его вывести из этого состояния.
socket.abort() не помогает, хотя судя по документации должен. socket.close() тоже.
Как быть подскажите, может кто сталкивался, пока вижу только один вариант, создавать сокет динамически и удалять.
А как следствие этой проблемы, даже когда канал становится доступным, сокет не может очнуться. Так и висит в состоянии ConnectingState и новое соединение не проходит.


Название: Re: QTcpSocket
Отправлено: ilyagoo от Марта 29, 2011, 10:23
bool QAbstractSocket::waitForConnected ( int msecs = 30000 )?


Название: Re: QTcpSocket
Отправлено: andrew.k от Марта 30, 2011, 10:30
bool QAbstractSocket::waitForConnected ( int msecs = 30000 )?
Это если использовать сокет синхронно, у меня все сделано асинхронно, через сигналы.
Но и это думаю не поможет.


Название: Re: QTcpSocket
Отправлено: mutineer от Апреля 06, 2011, 14:04
Ошибку подключения сокет тоже не выдает?


Название: Re: QTcpSocket
Отправлено: andrew.k от Апреля 06, 2011, 14:41
нет. он вообще никак не реагирует.