Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разрыв соединения при повторном соединении.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Pechkin
Добрый день.
Клиент (объект класса QTcpSocket) при первичном соединении соединяется и держит соединение, а после разрыва соединения и повторном соединении происходит разрыв сразу после соединения. Не подскажите в чём может быть дело ?

// конструктор главного окна который инициализирует объект:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
firstsocket = NULL;
ui->setupUi(this);
ui->statusBar->show();
tcpSocket = new QTcpSocket(this);
ui->textEdit->append(tr("Программа запущена"));

connect(tcpSocket, SIGNAL(connected()), this, SLOT(connectedtoserver()));
connect(tcpSocket, SIGNAL(disconnected()),
this, SLOT(connectionClosed()));
connect(tcpSocket, SIGNAL(readyRead()),
this, SLOT(updateDateset()));
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(error()));
connect(ui->radioButton , SIGNAL(toggled(bool)),
this, SLOT(mtoggled(bool)));
mtoggled(ClientState);

}


// Обработчик события об успешном соединении с сервером настроек
void MainWindow::connectedtoserver()
{
ui->statusBar->showMessage(tr("Connection is esteblished"));
ui->ConnectButton->setText("DisConnect");
disconnect(ui->ConnectButton,SIGNAL(clicked()));
connect(ui->ConnectButton, SIGNAL(clicked()),
this, SLOT(closeConnection()));
ui->EnableButton->setEnabled(true);
ui->textEdit->append(tr("Установлено новое соединение"));

}

// Обработчик события о разсоединении с сервером настроек
void MainWindow::connectionClosed()
{
ui->statusBar->showMessage(tr("Connection is not esteblished"));
ui->textEdit->append(tr("Разорвано соединение"));
mtoggled(ClientState);
}

// Обработчик события от кнопки делает разрыв соединения
void MainWindow::closeConnection()
{
tcpSocket->disconnectFromHost();
}

//Процедура осуществляет соединение с сервером настроек
void MainWindow::connectToServer()
{
ui->RadiogroupBox->setDisabled(true);
#if 1
tcpSocket->connectToHost(QHostAddress::LocalHost, 6178);
#else
tcpSocket->connectToHost("tripserver.zugbahn.de", 6178);
#endif
ui->statusBar->showMessage(tr("Connecting to server..."));

}

// Посылка запроса на сервер
void MainWindow::sendRequest()
{
QDataStream out(tcpSocket);
out << qint16(0x55AA);
}

// Обработчик ошибок соединения
void MainWindow::error()
{
closeConnection();
}

Забыл:
Qt Creator 2.4.1
Основан на Qt 4.7.4 (32-х битной)

ОС: Винда
Pechkin
ВСЁ!!!
РАЗОБРАЛСЯ САМ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.