当前位置: 代码迷 >> QT开发 >> QTcpSocket的read、write使用有关问题
  详细解决方案

QTcpSocket的read、write使用有关问题

热度:98   发布时间:2016-04-25 04:21:11.0
QTcpSocket的read、write使用问题。
我编了一个小程序,实现心跳和校时功能,使用了QTcpSocket的read、write、waitForReadyRead、waitBytesWriten等函数,可是每次read的时候都要等待,直到下一个write到来才进行,整个程序由此被拖延了不少,校时功能可以慢上20几分钟,愁死我了,这是哪里的问题,那位高手能指点一下?
        if(!this->waitForReadyRead()){
            printf("waitForReadyRead error\n");
            qDebug()<<"error="<<this->errorString();
            return -1;
        }
        int re = this->read(... ...);
        re = this->write(... ...);
        if(!this->waitForBytesWritten()){
            printf("waitForBytesWritten error\n");
            qDebug()<<"error="<<this->errorString();
            return -1;
        }
这样写对吗?
------最佳解决方案--------------------
可以参考Qt的TCP示例
------其他解决方案--------------------
看样子你的read函数是阻塞的,没有读到数据就一直阻塞的,如果不想这样那你就把socket设置为非阻塞的。
  相关解决方案