Следующий фрагмент кода компилируется, работает, подключается к серверу, сервер схватывает подключение, но если после этого просто закрыть окно приложения, то вываливается unhandled exception где-то в qtgui4.dll
#include "plotterclient.h"
#include <QMessageBox>
#include <QString>
PlotterClient::PlotterClient(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
connect(&socket,SIGNAL(connected()),
this,SLOT(connectionEstablished())); // connection established
connect(&socket,SIGNAL(connectionClosed()),
this,SLOT(connectionClosedByServer()));
connect(&socket,SIGNAL(readyRead()),
this,SLOT(dataReceived()));
connect(&socket,SIGNAL(error(int)),
this,SLOT(error(int)));
}
PlotterClient::~PlotterClient()
{
closeConnection();
QMessageBox::information(0,tr("Destructor"),tr(""));
}
void PlotterClient::connectionEstablished()
{
QMessageBox::information(0,tr("info"),tr("connection established"));
}
void PlotterClient::connectionClosedByServer()
{
QMessageBox::information(0,tr("info"),tr("connectionClosedByServer"));
}
void PlotterClient::dataReceived()
{
QMessageBox::information(0,tr("info"),tr("data received"));
}
void PlotterClient::error(int code)
{
QString message;
switch(code)
{
case QAbstractSocket::ConnectionRefusedError :
message = tr("Error: Connection refused");
break;
case QAbstractSocket::HostNotFoundError :
message = tr("Error: Host not found");
break;
default:
message = tr("Error: Data transfer failed");
}
QMessageBox::critical(0,tr("Error"),message);
closeConnection();
}
void PlotterClient::closeConnection()
{
socket.close();
}
void PlotterClient::on_connectButton_clicked()
{
host"));
socket.connectToHost("localhost",1251);
blocksize = 0;
}