Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在调试模式下从未收到QTcpServer newConnection信号_C++_Qt_Qtnetwork_Qtcpserver - Fatal编程技术网

C++ 在调试模式下从未收到QTcpServer newConnection信号

C++ 在调试模式下从未收到QTcpServer newConnection信号,c++,qt,qtnetwork,qtcpserver,C++,Qt,Qtnetwork,Qtcpserver,由于某些原因,在调试模式下运行时,newConnection信号似乎没有正确发出或处理 下面是一个示例,例如,当我将telnet连接到此服务器时,当我在发布模式下运行程序而不是在调试模式下运行程序时,会调用OnNewConnection。有什么想法吗 main.cpp 你使用阴影构建吗?是窗户吗?我怀疑您有阴影构建,并且防火墙无法与不同位置的应用程序进行通信。或者发布版本仍在运行,并保持5000端口。我完全关闭了防火墙,但这没有帮助。在任何给定的时间,我也只启动了一个进程。在QTcpServer

由于某些原因,在调试模式下运行时,
newConnection
信号似乎没有正确发出或处理

下面是一个示例,例如,当我将telnet连接到此服务器时,当我在发布模式下运行程序而不是在调试模式下运行程序时,会调用
OnNewConnection
。有什么想法吗

main.cpp
你使用阴影构建吗?是窗户吗?我怀疑您有阴影构建,并且防火墙无法与不同位置的应用程序进行通信。或者发布版本仍在运行,并保持
5000
端口。我完全关闭了防火墙,但这没有帮助。在任何给定的时间,我也只启动了一个进程。在QTcpServer::newConnection上放置一个brekapoint,并检查它是否发出过。添加检查
listen
返回的内容。似乎无法在
newConnection
上设置断点,不幸的是,因为它位于外部库中,但
listen
返回true!
#include "Server.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    Server s;
    return a.exec();
}
#ifndef SERVER_H
#define SERVER_H

#include <QtNetwork/qtcpserver.h>

class Server : public QObject {
    Q_OBJECT
public:
    Server();
    ~Server();
public slots:
    void OnNewConnection();
private:
    QTcpServer* server;    
};

#endif
#include "Server.h"

Server::Server() {
    server = new QTcpServer(this);
    server->listen(QHostAddress::Any, 5000);
    connect(server, SIGNAL(newConnection()), this, SLOT(OnNewConnection()));
}

Server::~Server() {

}

void Server::OnNewConnection() {
    exit(0); // whatever i put here, it's not called in debug mode
}