参照qt带的例子中的多线程方式写的程序,在run函数中给客户端发送没问题,但是问题出现在run函数中接收不了客户端发来的信息。
代码:
void Threadclient::run()
{
QTcpSocket socket;
qDebug()<<"socketDescriptor =="<<socketDescriptor;
if(!socket.setSocketDescriptor(socketDescriptor))
{
emit error(socket.error());
return;
} //接收数据
QDataStream in (&socket);
in.setVersion(QDataStream::Qt_4_7);
if(blocksize==0)
{
qDebug()<<"clientsocket.bytesAvailable=="<<socket.bytesAvailable();
if(socket.bytesAvailable()<(int)sizeof(quint16))
{
return;
}
in >>blocksize;
qDebug()<<"blocksize=="<<blocksize;
if(socket.bytesAvailable()<blocksize)
{
socket.close();
return;
}
QString type;
QString message;
in >>type;
if(type=="0x61")
{
//获取时间命令
in >>message;
qDebug()<<"message=="<<message;
return;
}
}
}
应该是在判断里给return了 怎么做能完成接收客户端发来的信息呢?求助·!~~~