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

doit44 2011-11-20 10:28:47
如题,求救一下啊,一下是我的代码
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;;
为什么呢?????
谢谢各位
...全文
1366 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
从森林里来 2014-01-06
  • 打赏
  • 举报
回复
调试工具给板子发 , 读不到啊
从森林里来 2014-01-06
  • 打赏
  • 举报
回复
bytesAvailable()一直读的是 -1啊
AABBC1234567 2013-09-24
  • 打赏
  • 举报
回复
楼上说的正解
foreverlovehon 2012-02-23
  • 打赏
  • 举报
回复
来攒点分儿~~嘻嘻
doit44 2012-02-23
  • 打赏
  • 举报
回复
谢谢。。呵呵。很久没上来了。。我已经解决了。是我数据类型不一致的原因
刀刀亮 2011-11-21
  • 打赏
  • 举报
回复
LZ能不能吧打印的输出全部贴上来啊?

16,154

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧