crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Разрыв соединения при повторном соединении.
Pechkin
  опции профиля:
сообщение 30.1.2014, 15:12
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 30.1.2014
Пользователь №: 4044

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день.
Клиент (объект класса 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
  опции профиля:
сообщение 30.1.2014, 15:57
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 30.1.2014
Пользователь №: 4044

Спасибо сказали: 0 раз(а)




Репутация:   0  


ВСЁ!!!
РАЗОБРАЛСЯ САМ.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 4:40