没有调用Qt incomingConnections

Qua*_*ale 4 c++ qt tcp

我已经编译了Qt的Trip Planner示例,该示例使用QTcpSocketQTcpServer创建客户端和服务器.

问题是,服务器的incomingConnection()插槽没有被调用.即使客户端成功连接到服务器.因此,套接字的readyRead()信号永远不会发出,客户端也不会返回数据.

tripserver.cpp

TripServer::TripServer(QObject *parent)
    : QTcpServer(parent)
{
}


void TripServer::incomingConnection(int socketId)
{
    qDebug() << "Incoming Connection";
    ClientSocket *socket = new ClientSocket(this);
    socket->setSocketDescriptor(socketId);
}
Run Code Online (Sandbox Code Playgroud)

如果我添加一个newConnection()插槽,它会被调用.那么发生了什么?

Qua*_*ale 11

找到我的答案.

自Qt 4.8.1起,参数列表已更改

http://qt-project.org/doc/qt-5.0/qtnetwork/qtcpserver.html#incomingConnection

void TripServer::incomingConnection(qintptr socketId){}

  • +1这很难调试,因为如果你把旧签名留下来,你只会得到一个无声的失败. (2认同)