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;;
为什么呢?????
谢谢各位