QTcpServer建立多个连接
我将demo中来连接就建立线程那段修改了socketList[socketCount] = new QTcpSocket;
socketList[socketCount]->setSocketDescriptor(socketDescriptor);
connect(socketList[socketCount],SIGNAL(readyRead()),this,SLOT(readMessage()));
sendMessage();改成这样,然后void FortuneServer::readMessage()
{
for(currentSocket = 0;currentSocket < socketCount-1; currentSocket++)
{
receiveBuffer = socketList[currentSocket]->readAll();
if(receiveBuffer.operator !=( NULL))
break;
}
QString str = receiveBuffer.toHex().toUpper();
qDebug() << str;
sendMessage();
}我想轮询socket找到当前收数据的socket,但是receiveBuffer = socketList[currentSocket]->readAll();这句程序崩溃了,我客户端就是这样轮询查找当前收发数据的socket的,求大牛指点下,这种思路有没有什么问题,提供其他思路也可以,谢谢
[解决办法]
没理解,找到当前收数据的SOCKET有必要用轮询吗?我的方法是做一个叫TcpSocketHandle的类,类里有个指针指向socket,然后在TCPSERVER新连接信号处理函数里new TcpSocketHandle,TcpSocketHandle的构造函数再CONNECT SOCKET的各种事件,以后对该SOCKET的处理全放在Handle里了,不需要轮询。
[解决办法]
有必要这样轮训么, 直接sender()不就知道是哪个链接上的来数据了么
这样轮询有啥意义么?