Russian Qt Forum
Май 07, 2024, 19:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Повторное подключение через QTcqpSocket  (Прочитано 5408 раз)
Kirsten
Гость
« : Апрель 03, 2006, 23:01 »

Елси повторно устанавливать соединение через QTcpSocket после обрыва соединения(принудительный обрыв соединения сервером), то программа намертво зависает на QTcpSocket::connectToHost, хотя QTcpSocket::state до вызова метода == QAbstractSocket::UnconnectedState, вызов close(), abort(), disconnect(), disconnectFromHost()  после обрыва соединения не помогает, все равно при попытке заново установить соединение программа виснет. В чем может быть проблема ?
Qt 4.1
Записан
Kirsten
Гость
« Ответ #1 : Апрель 06, 2006, 12:27 »

Что, ни у кого такой проблемы не возникает ?
Оказалось что после того, как любое сокетное соединение было прервано(не важно сервером или клиентом), очередная поптка установить соединение (даже с вновь инициализированного сокета) вызывет зависание.
Код:


#include "socket_test.h"

socket_test::socket_test(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
ui.setupUi(this);
socket = new QTcpSocket();
socket2 = new QTcpSocket();
}


void socket_test::on_pushButton_clicked()
{
socket->connectToHost("localhost", 59000);
}

void socket_test::on_pushButton_2_clicked()
{
socket->disconnectFromHost();
}

void socket_test::on_pushButton_4_clicked()
{
socket2->disconnectFromHost();
}


void socket_test::on_pushButton_3_clicked()
{
socket2->connectToHost("localhost", 59000);
}
Записан
Harm
Гость
« Ответ #2 : Апрель 30, 2007, 16:51 »

Вот вот! У меня та же проблема, Qt 4.2.3 (Windows, Opensource). Примеры от Trolltech по-моему тоже (Loopback например)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 20.