当前位置:编程学习 > wap >>

QtcpSocket运行在子线程中,能通过bytesAvailable()得到字节数,但是不能读出数据

如题,求救一下啊,一下是我的代码
void NetWorkThread::run() {

QTcpSocket *tcpSocket = new QTcpSocket;
qDebug() << "GHFGFHGGg" << socketDescriptor;
QByteArray byteArray;
QDataStream in(tcpSocket);
in.setVersion(QDataStream::Qt_4_7);
if (!tcpSocket->setSocketDescriptor(socketDescriptor)) {
qDebug() << socketDescriptor << "error11111";
emit
error(tcpSocket->error());
return;
}
if (tcpSocket->bytesAvailable() < size)
return;
QString ss;
int d;
if (tcpSocket->waitForReadyRead()) {
qDebug() << "GHFGFHGGg" << tcpSocket->bytesAvailable();
byteArray = tcpSocket->readAll();
qDebug()<<"0000000"<<byteArray.size();
in >> ss;
qDebug() << byteArray.isEmpty() << ss;
} else {
qDebug() << "wrong!!!!!!!";
}
exec();
}

打印出来 byteArray 为空 true;;
为什么呢?????
谢谢各位 --------------------编程问答-------------------- LZ能不能吧打印的输出全部贴上来啊? --------------------编程问答-------------------- 谢谢。。呵呵。很久没上来了。。我已经解决了。是我数据类型不一致的原因 --------------------编程问答-------------------- 来攒点分儿~~嘻嘻  --------------------编程问答-------------------- 楼上说的正解
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,