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

QTcpSocket的连续发送数据和连续接收数据

关于这个问题折腾了我好久,以前做些小练习的时候,用QTcpSocket的write()一数据,然后接收方只要emit一个readyread()信号然后就用QTcpSocket的read()去读。本以为只要发送方write一次,接收方就会响应readyRead信号。其实根本就不是这样的,readyRead不会知道发送方调用了几个write,它只负责在有数据到达时触发,等你真正接收时,或许已经能够收到所有的数据了。这要看你发送的信息量了,如果很少的话,比如发送几个字节的数据当然没有问题,一次readyRead就能读到所有数据但切记,这不是必然的!另外readRead到底能读多少数据是不确定的,这要看你的网速情况,还有你的电脑的性能了。

     举个例子,我在编程时用发送方while()连续向网络上传输数据,这个文件的数据量很大,就要使用waitForBytesWritten做一下等待,这就是每次等上一个write()完毕后才继续下一个write()这样数据就不会漏或者乱。还有一个问题是要传输数据时一定要先告诉接收方发的数据量是多大,也就是在发真正的数据时的头部用2个字节(quint16)或四个字节(quint32)去存放传送数据的大小。接收方就是根据这个传输数据的大小和每次bytesAvailable()的大小做对比,若小则缓存继续等待readyRead信号的触发,到时在去接收,直到最终接收的总数据跟发送方的数据大小是一致的就说明接收完毕。这就解决了大数据量连续发送与接收的问题。

 

转自:http://blog.csdn.net/wangyeqiang/article/details/8306275

相关文章:

  • HTM5新手学习的一些日常总结,相互交流和相互学习。
  • 客服系统微服务架构的演化
  • Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范推荐标准
  • IE版本多的可爱_已迁移
  • VB二进制文件读写
  • 2017,3月14号 下午
  • 奇葩设计师贾伟打开你的想象力经济
  • 关于 WordPress 上传图片的各种问题解决办法
  • 《海量日志数据分析与应用》之社交数据分析:好友推荐
  • NiFi 在Raspberry Pi安装运行实践
  • svn变更自动触发jenkins构建工程-简单版
  • mockito static method wiki
  • HBuilder 学习笔记
  • Linux操作系统基础知识
  • 运维学习第三弹
  • 03Go 类型总结
  • Angular2开发踩坑系列-生产环境编译
  • JAVA SE 6 GC调优笔记
  • KMP算法及优化
  • Lsb图片隐写
  • Markdown 语法简单说明
  • mysql_config not found
  • React组件设计模式(一)
  • vue数据传递--我有特殊的实现技巧
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 初识 beanstalkd
  • 老板让我十分钟上手nx-admin
  • 类orAPI - 收藏集 - 掘金
  • 排序算法之--选择排序
  • 探索 JS 中的模块化
  • gunicorn工作原理
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • MyCAT水平分库
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​Spring Boot 分片上传文件
  • #define,static,const,三种常量的区别
  • (0)Nginx 功能特性
  • (1)SpringCloud 整合Python
  • (8)STL算法之替换
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (poj1.3.2)1791(构造法模拟)
  • (WSI分类)WSI分类文献小综述 2024
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (离散数学)逻辑连接词
  • (三)elasticsearch 源码之启动流程分析
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .gitattributes 文件
  • .NET Framework杂记
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 使用反射注册事件
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET开发人员必知的八个网站
  • .NET命名规范和开发约定
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中的十进制浮点类型,徐汇区网站设计