• 4695阅读
  • 3回复

QTcpServer多线程接收问题 [复制链接]

上一主题 下一主题
离线charles_gz
 

只看楼主 倒序阅读 楼主  发表于: 2012-09-27
关键词: QTcpserver多线程
参照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了 怎么做能完成接收客户端发来的信息呢?求助·!~~~
离线charles_gz

只看该作者 1楼 发表于: 2012-09-27
大虾们指点指点啊~~~
离线charles_gz

只看该作者 2楼 发表于: 2012-09-28
自己顶~~!为什么没人回答?是我哪没说清楚吗?
离线charles_gz

只看该作者 3楼 发表于: 2012-09-28
结贴~~ 是保存长度的类型错了,应该quint16而我写成int了。
快速回复
限100 字节
 
上一个 下一个