当前位置: 首页 > news >正文

qt中的out与in

QDataStreamout(&block,QIODevice::WriteOnly);
out<<(quint16)0;
out<<tr("helloTcp!!!");
out.device()->seek(0);

QDataStream in (tcpSocket);


out是一个QDataStream 对象,将声明QByteArray的实例block置为存储缓冲区,模式为只写。 同样你去看代码in是一个只读流,将socket中的数据读出来的功能。in>>的意思是读出到blocksize中。和iostream很像,out和in都和网络模块没任何关系。
为了保证在客户端能接收到完整的文件,都在数据流的最开始写入完整文件的大小信息,这样客户端就可以根据大小信息来判断是否接受到了完整的文件。而在 服务器端,在发送数据时就要首先发送实际文件的大小信息,但是,文件的大小一开始是无法预知的,所以先使用了out<< (quint16) 0;在block的开始添加了一个quint16大小的空间,也就是两字节的空间,它用于后面放置文件的大小信息。
然后 out<<tr(“hello Tcp!!!”);输入实际的文件,这里是字符串。当文件输入完成后,在使用out.device()->seek(0);返回到block的开 始,加入实际的文件大小信息,也就是后面的代码,它是实际文件的大小:out<<(quint16) (block.size() – sizeof(quint16));





http://www.taodudu.cc/news/show-4752401.html

相关文章:

  • 大型医疗挂号微服务“马上好医”医疗项目(5)Swagger的使用
  • 算法第62天 单调栈2
  • 安卓自动化脚本制作流程详解!
  • Shell脚本
  • uniapp开发微信小程序,选择地理位置uni.chooseLocation
  • 测试 vs2019 c++ 在 32 位系统和 64 位系统里的 sizeof ( void * )
  • 初探USB3.0极简方案FT601Q芯片方案
  • FT601Q Multi-Channel FIFO Mode Protocols 多通道Fifo模式
  • html rfftq15.gif,stm32F4固件库
  • 在Ubuntu18.04上安装USTC-TK2016
  • elasticsearch系列四:搜索详解(搜索API、Query DSL)
  • Elasticsearch搜索引擎第十篇-Query DSL详解
  • LeetCode 713. 乘积小于 K 的子数组
  • Codeforces713D(二维RMQ)
  • 华为手机无法debug的问题
  • 网页引入腾讯视频小记
  • 通知单的长文本和合作伙伴功能获得
  • 实体鉴别GB/T 15843研究(二)——GB/T 15843.2采用对称加密算法
  • 基于低功耗蓝牙的手机APP(文末有整个工程的下载连接哦!)
  • 实体鉴别GB/T 15843研究(合集)
  • 区块链与数字货币之间的关系
  • .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
  • Java与RabbitMQ(二)启动rabbitmq web管理后台插件
  • docker 镜像使用
  • 配置OpenStack准备环境
  • ElasticSearch - 简介
  • 思维导图软件对比
  • 【韩顺平JAVA】房屋出租系统
  • 日本九州攻略
  • 已知分布函数求概率密度例题_【考研数学】考试重点、难点和常考题型:?随机变量及其分布...
  • 【概率论】作业三
  • 贝叶斯课后习题(零)常用分布
  • 【概率论与数理统计】猴博士 笔记 p29-32 均匀分布、泊松分布、指数分布、几何分布
  • 怎样用matlab产生泊松分布随机数
  • 模拟台球运动
  • 【算法修炼】台球碰撞 C