关于tcpServer典型例子使用的一个问题,以下是典型例子中的关键代码部分,大家应该看得明白的
connect(this->tcpServer,SIGNAL(newConnection()),this,SLOT(AcceptConnection()));
void MTcpServer::AcceptConnection() //接收连接
{this->tcpSocket=this->tcpServer->nextPendingConnection();
connect(this->tcpSocket,SIGNAL(readyRead()),this,SLOT(ReadTcpSocket()));}
void MTcpServer::ReadTcpSocket() //读取数据
{ this->tcpSocket->readAll();}
我的问题是,当有很多连接请求在某一较短的时间段出现时,以上代码不会出现错误吗?
举例:
假设已经建立起套接字A,B和C,同时处于连接状态中....而且是长时间的连接,短时间内不会断开
如果某个时刻this->tcpSocket指向套接字B(我们知道不可能同时指向两个套接字的),
而套接字A或者C此时有数据来了,触发槽函数去读取this->tcpSocket指向的套接字的数据,
由于此时this->tcpSocket指向套接字B,也就是说A或者C有数据来了,却触发槽函数去读取B的数据?
[ 此帖被iiiyyyhhhsss在2010-03-06 21:01重新编辑 ]