我正在使用Qt 5.4并尝试在"断开连接时尝试恢复接受新连接。发出来自QTcpSocket
的信号。所以我分别在.h和.cpp文件中写了以下内容:
QPointer<QTcpServer> tcpServer; // in .h file
connect(tcpSocket, &QAbstractSocket::disconnected, [=](){
tcpServer->resumeAccepting(); // in .cpp file
});
如您所见,我使用QPointer
类作为tcpSocket
。使用上面的代码,我无法构建我的程序并且没有匹配函数来调用...&#34;如果在没有tcpSocket
的情况下定义QPointer
,我就不会遇到任何问题。
我该如何解决这个问题?
答案 0 :(得分:2)
直接连接会更聪明。
connect(tcpSocket, &QAbstractSocket::disconnected,
tcpServer, &QTcpServer::resumeAccepting);
请注意,nextPendingConnection已将父级设置为QTcpServer
,因此您还可以通过以下方式访问服务器:
auto tcpServer = qobject_cast<QTcpServer *>(sender()->parent());