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));
qt中的out与in相关推荐
- QT 中QTimer 和 startTimer()的区别
最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...
- QT 中使用 OpenCv 的 CascadeClassifier 报错
问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fa ...
- 【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
一.问题 在Qt中使用https,运行时报错: qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method 二.原因分析 SSLv2由 ...
- Qt中两种定时器用法
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...
- Qt中的 Size Hints 和 Size Policies
sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...
- Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法
一 前言 二Qt多线程方法一 继承QThread 2.1使用多线程的原因分析 2.2 写一个继承于QThread的线程 三 总结 一 前言 本篇文章部分内容参考了该博文:传送门. Qt中有两种 ...
- C++中的stack类、QT中的QStack类
C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个i ...
- Qt中不规则窗体和部件的实现
Qt中不规则窗体和部件的实现 描述:a.png 窗口背景图 图片: 描述:mask.png 窗口掩码图 图片: 描述:toolbutton.png 按钮背景图 图片: 描述:toolbutton_ma ...
- QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置
QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 参考文章: (1)QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 (2)https:// ...
- [转]QT中QString与string的转化,解决中文乱码问题
[转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...
最新文章
- B 站的前端崩了,后端的你别慌!
- 避免让网站沦为摆设,从三个方面着手塑造!
- 141. Sqrt(x)【牛顿迭代法求平方根 by java】
- python 批量增加文件前缀_Excel VBA工作薄 7.5批量增加工作表前缀/后缀 工作表区分更方便...
- 【软考】[信息安全工程师]
- c语言打开文件出现分段故障,c fclose() 导致分段故障_segmentation-fault_开发99编程知识库...
- nginx tomcat spring-boot 对json等数据压缩
- 物品的名字、品牌的认识
- [Python] zeros(r, c)和ones(r, c)和eye(n) 生成特殊矩阵
- 怎么获取连表查询的相同字段
- postman实现接口请求
- XSS进阶二 ——合天网安实验室学习笔记
- 张飞实战电子硬件工程师90天学习资料及笔记汇总
- java给word增加页码_Java 添加页码到Word文档
- 【算法宇宙——在故事中学算法】背包dp之完全背包问题
- Head First设计模式笔记
- 字节跳动测试岗薪酬体系曝光,我承认真的酸了
- ES6, ES7, ES8, ES9 以及 ES10 新特征
- linux find 隐藏,使用find命令查找Linux中的隐藏文件的方法
- ‘gbk‘ codec can‘t decode byte 0xa7 in position 40: illegal multibyte sequenc