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));

qt中的out与in相关推荐

  1. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

  2. QT 中使用 OpenCv 的 CascadeClassifier 报错

    问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fa ...

  3. 【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

    一.问题 在Qt中使用https,运行时报错: qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method 二.原因分析 SSLv2由 ...

  4. Qt中两种定时器用法

    在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...

  5. Qt中的 Size Hints 和 Size Policies

    sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...

  6. Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法

    一 前言 二Qt多线程方法一 继承QThread 2.1使用多线程的原因分析 2.2 写一个继承于QThread的线程 三 总结 一 前言   本篇文章部分内容参考了该博文:传送门.   Qt中有两种 ...

  7. C++中的stack类、QT中的QStack类

    C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个i ...

  8. Qt中不规则窗体和部件的实现

    Qt中不规则窗体和部件的实现 描述:a.png 窗口背景图 图片: 描述:mask.png 窗口掩码图 图片: 描述:toolbutton.png 按钮背景图 图片: 描述:toolbutton_ma ...

  9. QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置

    QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 参考文章: (1)QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 (2)https:// ...

  10. [转]QT中QString与string的转化,解决中文乱码问题

    [转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...

最新文章

  1. B 站的前端崩了,后端的你别慌!
  2. 避免让网站沦为摆设,从三个方面着手塑造!
  3. 141. Sqrt(x)【牛顿迭代法求平方根 by java】
  4. python 批量增加文件前缀_Excel VBA工作薄 7.5批量增加工作表前缀/后缀 工作表区分更方便...
  5. 【软考】[信息安全工程师]
  6. c语言打开文件出现分段故障,c fclose() 导致分段故障_segmentation-fault_开发99编程知识库...
  7. nginx tomcat spring-boot 对json等数据压缩
  8. 物品的名字、品牌的认识
  9. [Python] zeros(r, c)和ones(r, c)和eye(n) 生成特殊矩阵
  10. 怎么获取连表查询的相同字段
  11. postman实现接口请求
  12. XSS进阶二 ——合天网安实验室学习笔记
  13. 张飞实战电子硬件工程师90天学习资料及笔记汇总
  14. java给word增加页码_Java 添加页码到Word文档
  15. 【算法宇宙——在故事中学算法】背包dp之完全背包问题
  16. Head First设计模式笔记
  17. 字节跳动测试岗薪酬体系曝光,我承认真的酸了
  18. ES6, ES7, ES8, ES9 以及 ES10 新特征
  19. linux find 隐藏,使用find命令查找Linux中的隐藏文件的方法
  20. ‘gbk‘ codec can‘t decode byte 0xa7 in position 40: illegal multibyte sequenc

热门文章

  1. 使用Glade3.0进行界面开发
  2. 20、实现短信验证码的登录注册功能
  3. 《漫画傅里叶解析》笔记(6)
  4. HtmlParser + HttpClient 实现爬虫
  5. lodop打印控件打印申通快递单
  6. 嵌入式系统如何解决死循环类挂起
  7. 和你说说程序员的那点事
  8. linux能装sql2000,亲测linux安装sql server (docker+centos7)
  9. 深度学习图形工作站配置
  10. 补第十五周leetcode算法博客