读书人

QTcpSocket的read、write使用有关问题

发布时间: 2012-12-24 10:43:13 作者: rapoo

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设置为非阻塞的。

读书人网 >QT开发

热点推荐