Я пробую очень простую сетевую программу QT. По какой-то причине он сбой при выполнении без какого-либо сообщения об ошибке, поскольку он не печатает какие-либо выходы в командной строке, как ожидалось. Вот код:Программа вылетает при вызове QTcpServer
qtTCPservertest.pro
QT += core
QT += network
QT -= gui
TARGET = qtTCPservertest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
theserver.cpp
HEADERS += \
theserver.h
theServer.h
#ifndef THESERVER_H
#define THESERVER_H
#include <QTcpServer>
#include <stdio.h>
class theServer : public QTcpServer{
Q_OBJECT
public:
theServer();
~theServer();
void goOnline();
};
#endif // THESERVER_H
theServer.cpp
#include "theserver.h"
theServer::theServer()
{
}
theServer::~theServer()
{
}
void theServer::goOnline()
{
bool status = false;
unsigned int portNum = 5200;
status = this->listen(QHostAddress::Any, portNum);
// Check, if the server did start correctly or not
if(status == true)
printf("Server up\n");
else
printf("Server down\n");
}
и main.cpp
#include <QCoreApplication>
#include <stdio.h>
#include "theserver.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
printf("Test\n");
theServer* aServer = new theServer();
aServer->goOnline();
aServer->~theServer();
return a.exec();
}
Кто-нибудь идея, где я пошло не так? Поскольку нет ошибки, я не знаю. Он просто ничего не распечатывает, он просто подсказывает мне нажать любую клавишу, чтобы закрыть окно, как если бы он закончился, как обычно.
Спасибо за консультацию.
Вы пытались запустить его в отладке? – cen
@cen прямо сейчас У меня проблемы с использованием gdb с Qt/Creator, и поскольку я считаю, что исправление этого было бы более сложной задачей, я бы не смог его отладить (если вы имеете в виду, например: 'gdb') – user3085931
Я бы предложите исправить отладчик в своем Qt Creator, потому что по крайней мере тогда вы точно узнаете, где программа выйдет из строя. И как только вы узнаете, что это должно быть проще. Если «Тест» не напечатан, у вас больше проблем, связанных с сетью. – cen