我试图了解QTcpSocket和QTcpServer如何协同工作 . 所以我写了这个简单的例子,它在localhost上启动服务器和客户端套接字:
QTcpServer server;
qDebug() << "Listen: " << server.listen( QHostAddress::Any, 10590);
usleep( 500000); //1/2 sec
QTcpSocket client;
client.connectToHost( QHostAddress( "127.0.0.1"), 10590);
usleep( 5000000);
qDebug() << "Client socket available: " << client.isValid();
qDebug() << "Pending connections:" << server.hasPendingConnections();
我得到了这个输出:
Listen: true
Client socket available: true
Pending connections false
为什么没有待处理的连接?
PS>我不想使用SLOT / SIGNALS机制 .
1 回答
输出:
这是因为
QTcpServer
无法回答QTcpSocket
查询...两者都在同一个线程上,如果QTcpSocket
正在执行,QTcpServer
处于空闲状态 .在多线程应用程序中尝试它 .