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

怎么把网站扒下来运城建设网站

怎么把网站扒下来,运城建设网站,做网站价格多少,优化seo可以从以下几个方面进行Qt QTcpSocket的write无法发送数据 一、问题描述二、解决方案三、深入了解write机制3.1 write函数3.2 flush函数3.3 waitForBytesWritten函数 四、参考链接 一、问题描述 QTcpSocket的write函数发送数据,使用网络调试助手收不到值,但能收到连接和断开连…

Qt QTcpSocket的write无法发送数据

  • 一、问题描述
  • 二、解决方案
  • 三、深入了解write机制
    • 3.1 write函数
    • 3.2 flush函数
    • 3.3 waitForBytesWritten函数
  • 四、参考链接

一、问题描述

QTcpSocket的write函数发送数据,使用网络调试助手收不到值,但能收到连接和断开连接,单步Debug write函数能执行成功,也有返回值。使用wireshark抓包,只有连接和断开连接的信号,没有数据发来。
也怀疑缓冲区不够就不发,write了很多也没用,感觉像是哪里堵塞或者缓冲区有问题,尝试停了其它QTcpSocket,只留一个点击按钮才发送,能正常发。

网上搜了也有很多类似的问题,官方文档并没有写清楚它的机制。

二、解决方案

综合网上的回答与自己的测试结果,主要有以下两种解决方案:

    1. write后,立即使用flush 或 waitForBytesWritten (可能会带来性能上的问题)
    1. 使用信号和槽,槽函数里调用write (交给Qt,比较推荐)
      (死去的回忆攻击了我,之前就是这么写的,所以没有发现这个问题,也就没有深入了解)

三、深入了解write机制

3.1 write函数

QTcpSocket的write是非阻塞式的,它会写入内部缓冲区, 并不会发送出去。其发送依赖于事件循环,或者底层的网络协议和系统调度 - 具体可深入源码了解。

借用论坛中大佬的回复:
write的频率过高则会将数据全部写入缓冲区,测试的时候大概估计100微妙以上的间隔才会发送,要不会一直写缓存。

3.2 flush函数

bool QAbstractSocket::flush ()

调用flush,会将内部写缓冲区写入底层socket,而不会造成阻塞。只要有数据写入就返回true;否则返回false。需要立即发送缓冲区的数据,可以调用此函数,成功写入的字节数取决于操作系统
一般不需要调用此函数,一旦返回事件循环,QAbstractSocket将自动开始发送数据。在没有事件循环的情况下,改为调用waitForBytesWriten()。

3.3 waitForBytesWritten函数

bool QAbstractSocket::waitForBytesWritten ( int msecs = 30000 )

调用此函数会阻塞,直到缓冲的数据已写入设备并发出bytesWriten()信号,或者超时 (默认)。如果msecs为-1,则此函数不会超时。如果数据已写入设备,则返回true;否则返回false(超时或发生错误)。
应用于非GUI应用程序和在非GUI线程中执行I/O操作时,即用最好新线程使用此函数,避免阻塞。

注:此函数在windows上有bug,建议使用事件循环或bytesWritten()信号

四、参考链接

    1. QT QTcpSocket发送数据问题:https://blog.csdn.net/soulfy/article/details/19631735
    1. 如何在QTCPSocket中不使用flush和waitFOrBytesWritten将数据直接写入套接字:https://cloud.tencent.com/developer/ask/sof/104559805
    1. Qt中的QTcpSocket类的write()方法不能发送数据的解决方法:https://blog.csdn.net/simmerlee/article/details/9000882
    1. QT中QTcpSocket的write函数问题:https://bbs.csdn.net/topics/390411733
    1. QTcpSocket通信编程时阻塞与非阻塞的问题:https://blog.csdn.net/NEOMc/article/details/5548959
    1. 使用Qtcpsocket中的flush()方法后导致release版本运行不稳定问题:https://bbs.csdn.net/topics/390982307

文章转载自:

http://L0kgZ7jy.kfmLf.cn
http://euH3MfYO.kfmLf.cn
http://0zcjbs3a.kfmLf.cn
http://2GiodnSq.kfmLf.cn
http://Uv6VKlev.kfmLf.cn
http://lENdXCWN.kfmLf.cn
http://qVyBWUNQ.kfmLf.cn
http://5MhYPwSR.kfmLf.cn
http://uRkHbZIQ.kfmLf.cn
http://j4JxNiU4.kfmLf.cn
http://BqCfbGvf.kfmLf.cn
http://SUyjP82L.kfmLf.cn
http://Kpjih5Dd.kfmLf.cn
http://exVLBM6D.kfmLf.cn
http://fhIPIdSW.kfmLf.cn
http://ptZ9Ij97.kfmLf.cn
http://4Iac3uMA.kfmLf.cn
http://ooGSbtb6.kfmLf.cn
http://3HrHftA4.kfmLf.cn
http://s4CsJI1K.kfmLf.cn
http://94xooqV5.kfmLf.cn
http://9J3yjR0u.kfmLf.cn
http://GkKufgsC.kfmLf.cn
http://MqtDqeUs.kfmLf.cn
http://fy5oIgsd.kfmLf.cn
http://kCyIhmRm.kfmLf.cn
http://Asci3QQp.kfmLf.cn
http://o7hMe8y2.kfmLf.cn
http://DAbdazhT.kfmLf.cn
http://5fyKDluB.kfmLf.cn
http://www.dtcms.com/wzjs/674913.html

相关文章:

  • 咸阳做网站的公司wordpress 多栏主题
  • 爱奇艺做任务领vip网站网页制作与网站建设实战大全光盘
  • 免费注册域名网站知乎南京时事重大新闻
  • 怎样在外国网站开发客户平面设计的网站
  • 百度网站如何做运营wordpress 导航菜单 居中
  • 在线海报设计网站用手机开发app的软件
  • p2p网站建设公司排名制作网站软件教程
  • 南宁网站建设索王道下拉网站的做网站公司
  • 郑州模板建站梧州论坛最新主题
  • 贵州省两学一做网站哈尔滨建设厅官网
  • 网站外链隐形框架是什么互联网推广工资很高吗
  • 什么网站可以做线上邀请函中国建盏形象设计大赛获奖名单
  • 山东网站开发网站建设毕业设计开题报告
  • 做网站找个人wordpress首页显示栏目分类
  • 微信表情包制作网站五个常见的电子商务网站
  • 长沙制作网站信用中国 网站有那个部门支持建设
  • wordpress 使用教程优化大师兑换码
  • 如何查询网站开发免费建网站哪家好
  • 拍卖网站制作表格网站怎么做的
  • 个人能备案多少个网站哈尔滨 做网站公司
  • 辽宁建设工程信息网官方网站网站做跳转的意义
  • 中山建设网站官网福州
  • 建网站哪家划算福建省建设集团有限公司官网
  • 青州网站搭建微网站开发腾讯
  • 免费发布推广信息电影网站如何做seo
  • 怎么建立网站文件夹广州市企业网站建设平台
  • 做网站后期费用做信息网站要办icp证吗
  • 丽水做网站企业网页多少钱
  • 潍坊做网站价格可以做淘宝推广的网站
  • 网站做销售是斤么工作深圳网站建设全包