社区
Qt
帖子详情
QT tcp接收。每次接收到数据之后数据之后ReadyRead信号总是延时触发??
xundeng
2020-05-28 08:34:04
QT tcp接收。每次接收到数据之后数据之后readready信号总是延时触发??
去在ReadyRead()信号对应的槽函数中打印的时间和抓包工具抓包时间对比,发现ReadyRead()信号触发时间总要晚上1s到7、8秒不等。而接收到的数据越少,延时越长。怀疑是qt做了延时等等。 请问怎么去掉这个延时。
...全文
2377
10
打赏
收藏
QT tcp接收。每次接收到数据之后数据之后ReadyRead信号总是延时触发??
QT tcp接收。每次接收到数据之后数据之后readready信号总是延时触发?? 去在ReadyRead()信号对应的槽函数中打印的时间和抓包工具抓包时间对比,发现ReadyRead()信号触发时间总要晚上1s到7、8秒不等。而接收到的数据越少,延时越长。怀疑是qt做了延时等等。 请问怎么去掉这个延时。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xundeng
2020-07-29
打赏
举报
回复
没有遇到你说的情况。 在线程的run函数中,设置一人周期函数,用于发送数据。然后直接调用用exec();进入线程的消息循环。 响应readyRead()信号用接收数据。 伪代码如下 void CThreadrun::run() { m_isrun = true; InitTimer(); exec(); m_isrun = false; } void CThreadrun::send_data() { if (!m_Comm.m_TcpC.m_isOpen) { OpenInit(); if (m_Comm.m_TcpC.m_isOpen) { connect(m_Comm.m_TcpC.m_p_Sock, SIGNAL(disconnected()), this, SLOT(client_disconnected()), Qt::DirectConnection); connect(m_Comm.m_TcpC.m_p_Sock, SIGNAL(readyRead()), this, SLOT(tcp_client_recv()), Qt::DirectConnection); } } else { //发送TCP数据 int nR = m_Comm.Send(m_Buf, nLen, COMM_TCP_CLIENT); } }
xiaocaiyigea
2020-07-16
打赏
举报
回复
麻烦问下 你那边有没有网卡接收到了数据但是客户端没接收到的情况?怎么解决的 挺急的 给个意见呗
xiaocaiyigea
2020-07-16
打赏
举报
回复
怎么解决的 能不能给个代码看一下
编程小鱼酱
2020-06-16
打赏
举报
回复
加个sleep
xundeng
2020-06-08
打赏
举报
回复
问题解决了, 是我把线程用错了。 线程的run()函数应该作为初始化用,最run()结束之前,应该使用exec()进行线程的消息循环。而我用的时候用了while(1)一直在run()接收信号未即时触发。
xundeng
2020-06-08
打赏
举报
回复
问题解决了, 是我把线程用错了。
浮一大白开水
2020-06-01
打赏
举报
回复
没有发现此现象,建议抓包看一下,和发送的数据大小、网络状态都相关。另外是使用的短连接方式还是长连接方式。线程中是不是存在其它阻塞的情况。是不是其它线程优先级高在处理大量数据导致,都需要考虑。
xundeng
2020-05-30
打赏
举报
回复
socket 是在线程里面接收数据的。在线程里面接收就会有延时,不用线程就没事。
xundeng
2020-05-29
打赏
举报
回复
经过测试,直接用readall()去读值,也要延时几秒之后才能读到,说明数据到了网卡,但是没有到Qsock的缓存区里面。
DreamLife.
2020-05-29
打赏
举报
回复
火速留名,等着看大神的解答,一直在用,却一直没有注意过
qt
的
QT
cpSocket在对端关闭后,程序就会崩溃(段错误).zip
qt
的
QT
cpSocket在对端关闭后,程序就会崩溃(段错误).zip
qt
的
QT
cpSocket在结束进程后,
tcp
的对端程序就会崩溃(段错误),其原因是...
QT
C++学习代码案例
适用于
QT
初学者,32个代码案例,包括一些
QT
控件的基本使用,理解
QT
的
信号
和槽机制,以及线程,定时器,UDP和
TCP
的一些基本用法等;使用
QT
creator开发环境
Qt
功能代码收藏
Qt
功能代码收藏
Qt
功能代码收藏
Qt
功能代码收藏
Qt
功能代码收藏
Qt
功能代码收藏
Qt
功能代码收藏
使用
QT
时有关
TCP
Scoket收发
数据
包,
数据
错误问题
前提说明:
QT
是在windows下的,服务器是linux下的 问题1:这次项目是用
QT
收
数据
,我从Llinux服务器发图片包过来,采用分片传输的方法。然后
QT
这边是用
TCP
socket
接收
,发一个包就接受一次,然后写入文件中保存,直到最后一个包过来关闭文件,就能完成一张图片的传输。然后做的时候是,一开始测试
每次
发过来的图片
数据
1024个字节,采用crc校验。全程没啥问题,然后就觉得传输的太慢了,想要传2048个字节。这次就传了5个包,第5个包的包头没有错,但是crc校验包体也就是图片
数据
是错的校验失败了.
Qt
实现
tcp
发送和
接收
文件
serverwidget.h #ifndef SERVERWIDGET_H #define SERVERWIDGET_H #ifdef WIN32 #pragma execution_character_set("utf-8") #endif #include <QWidget> #include <
QT
cpServer>//监听套接字 #include <
QT
cpSocket>//通信套接字 #include <QFile> #include<
QT
i
Qt
16,784
社区成员
26,677
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章