首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QTcpServer建立多个连接解决思路

2014-04-21 
QTcpServer建立多个连接我将demo中来连接就建立线程那段修改了socketList[socketCount] new QTcpSocket

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()不就知道是哪个链接上的来数据了么

这样轮询有啥意义么?

热点排行