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