qt客户端获取服务器发送视频的方法

三、指针对象没有实例化就进行引用

如:

关于qt程序异常退出
Dialog *d;
 
d = new Dialog;
d->show();

如果忘了第二行的实例化,也会导致Qt程序异常终止

********************************************************************************************

第一版视频采集::程序不够健壮,遇到错误就中断了(接口需要自己定义,我是先发一个pic 然后服务器先发大小,后发送照片数据(1秒获取一次图片))

 QThread::usleep(1000);
     int ret;
     char response[20] = {0};                                                   //创建一个缓存区
 
     memset(response,0,sizeof(response));                                 //清零
     char pic []= "pic";
     unsigned int piclen;
 
                qDebug() << "请求图片发送pic";
     ret=Tcpsocketpic->write(pic,strlen(pic));                           //发送pic  请求照片大小


 
 
              qDebug()<<"发送pic给ret的返回值="<<ret;
 
              qDebug() << "请求完毕";
 
 
     Tcpsocketpic->flush();                                        //发完之后刷新socket
 
     QThread::usleep(1000);
 


 
     ret = Tcpsocketpic->read(response,5);                                //读照片大小  ret 为5   读入response为五位数大小
 
 
               qDebug()<<"读照片大小的ret="<<ret;
 
     if(ret != (int)strlen(response) )
     {
               qDebug() << "图片大小接收失败";
 
               timer->stop();                    //定义timer函数
               Tcpsocketpic->close();
               //goto loop;
      }
 
               qDebug() << "response: " << response;
      piclen = atoi(response);                         //接受到图片大小             
 
      Tcpsocketpic->flush();
 
      char *picbuf = new char[piclen + 1];           //接收图片是创建图片大小的缓存区
 
     QThread::usleep(1000);
      ret = Tcpsocketpic->read(picbuf,piclen);
 
      if(ret<0)
            {
              qDebug() << "recv pic failed" << ret;
              ui->label_picture->clear();
              Tcpsocketpic->close();
            }
 

       QPixmap pixmap;                    //关于程序异常退出,没有初始化pixmap
 
       pixmap.loadFromData((const uchar *)picbuf, piclen, "JPEG");                //就在这两行出现错误
       ui->label_picture->setPixmap(pixmap);
 
       Tcpsocketpic->flush();
       delete[] picbuf;

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值