在学习TCP通信的时候,想用QT做个服务器给客户端发送文件的小例子。但是捣鼓半天,客户端收到的文件大小总是小于服务器端发送的文件大小
百思不得其解,参照了网上别人代码后终于发现症结所在。

有问题的服务器端代码:

char buffer[1024];
while(!file->atEnd())
{QApplication::processEvents();  //防止UI界面卡死file->read(buffer,1024));  //每次往buffer读1024字节socket->write(buffer);  //将buffer内容写入套接字
}

表面上完美,实际上有个隐含的Bug。

应该给write函数再补充第二个参数,修改为:

socket->write(buffer,1024);

查看文档,发现write是重载函数:

  • qint64 QIODevice::write(const char *data, qint64 maxSize)
    将最多maxSize字节数据写入设备。返回实际写入的字节数;如果发生错误,则返回-1。

  • qint64 QIODevice::write(const char *data)
    将以‘\0’结尾的字符串中的数据写入设备(‘\0’以后的数据都丢掉了)。返回实际写入的字节数,如果发生错误则返回-1。

看文档不仔细,耽误了不少功夫,记录一下。

QIODevice::write函数惹得祸相关推荐

  1. ***突然断开可能是ADSL猫惹的祸

    在我们使用×××服务器的时候,最讨厌的就是无故的断线了,可能正在和好×××一起副本,或者正在视频热聊中,还或者youtube视频看的正起劲,突然windows一个对话框弹出 - "连接已经断 ...

  2. 都是“工作惯性”惹的祸

    都是"工作惯性"惹的祸 原定于2008年11月8日.9日举行的2008年下半年全国计算机技术与软件专业技术资格(水平)考试,因试卷在威海市转运过程中发生丢失,被迫推迟举行. 威海, ...

  3. Samba共享后不能访问,或者看不到文件,是selinux惹的祸

    Samba共享后不能访问是selinux惹的祸 第一种方法:关闭SELinux,并修改配置文件,使系统启动时不启动SELinux. 不关机的关闭方法是:setenforce 0 永久关闭是: vi / ...

  4. 拖延不是你的锅,全是基因惹的祸

    拖延不是你的锅,全是基因惹的祸 作者:炸炸呼呼 来源:微信公众号<疼疼痒痒小家园> Never put off until tomorrow what you can do today 酷 ...

  5. ppt提示内存或系统资源不足_为何手机一直提示内存不足?原来是它们惹的祸,赶紧清了...

    现在几乎所有手机的配置都是6G+128GB的,那就是这款手机的内存是6G,存储是128GB,可能有些不太懂手机的朋友,不是很清楚,那就让小编来告诉你把!例如现在的电脑通常都是8G或16G的,硬盘却是5 ...

  6. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)

    最近在网上看到 MySql 关于 NULL 的文章 有几个值得争议的观点,我们一起看看 ● 准备工作 MySql 版本 5.7,InnoDB 存储引擎, 表 test 数据量 10 w, 其中 a , ...

  7. 服务器应用服务为何卡顿?原来是内存耗尽惹的祸!

    做过运维的朋友们都可能会遇到:服务器应用程序运行慢的问题,最终各部门找上门,. 今天在这我跟大家分享一个案例及其解决办法.以前我跟很多朋友们也为这样的事情苦恼过,我的服务器内存可是64G啊,这都不够它 ...

  8. 顺丰不顺、京东动荡,都是物流基因惹的祸?

    最近,顺丰和京东频频水逆. 3月16日顺丰发布了2018年财报,2018年顺丰实现营业收入909.43亿元,同比增长27.6%:归母公司净利润45.56亿元,同比下降4.5%:扣非净利润34.84亿元 ...

  9. #pragma pack (n) 惹的祸

    今天遇到了一个问题,使用数据流传输的数据在解析的时候数据错位.想了非常久,发现是#pragma pack (n)惹的祸. 首先.解析方使用了编译字节设置,可是在发送方没有使用,于是用相同的结构体解析数 ...

最新文章

  1. 阿里再次主办大数据世界杯, KDD Cup2020正式开赛
  2. UIWebView保存网页中的图片(转载)
  3. Hadoop入门(十)Mapreduce高级shuffle之Sort和Group
  4. wcf rest系列文章
  5. RabbitMQ 的延时队列和镜像队列原理与实战
  6. Handler的源码分析
  7. [coursera] [design] Hangman
  8. java apache commons_使用java apache commons下载文件?
  9. call_user_func_array
  10. BZOJ1010[HNOI2008] 玩具装箱toy
  11. 前端无法识别<br/>,无法进行换行
  12. 下载、预览PDF报错问题排查
  13. Flutter模拟器运行显示不正常问题(夜游神安卓模拟器)
  14. [教程资源] HTC Vive UI Guideline
  15. 虚拟创建失败之Dbus调试
  16. 微信小程序基础之input输入框控件
  17. 扒一扒那些叫欧拉的定理们(六)——九点圆定理的证明
  18. ibm服务器维修站点,上海服务器维修,上海HP服务器维修,上海IBM服务器维修,上海SUN服务器维修,上海DELL服务器维修,上海小型机维修,上海工业设备维修,上海工作站维修,上海工控机维修...
  19. 大数据与人工智能:学习资源收藏
  20. python xlsxwriter不覆盖写入_python 2.7 使用xlsxwriter模块写入excel文件数据时,左上角出现绿色的小三角符号,无法生成表格怎么办?...

热门文章

  1. 温州无证程序员被拘留--程序员伤不起呀。。。。
  2. Practice03
  3. 查询的数据出现Bug
  4. 采用邻接表存储有向图,设计算法判断任意两个顶点间是否存在路径。设计算法,将一个无向图的邻接矩阵转换为邻接表。
  5. html 如何给图片打标签,图文详解HTML页面中添加图片的三种方法
  6. pandas统计重复值次数
  7. 关于wamp图标是黄色的问题解决
  8. 基于W5300的高速硬件以太网解决方案
  9. wifi protocol and IEEE905 protocol 学习详解
  10. 江工网:公务员辞职后几年禁考