
Qt
文章平均质量分 69
Fake瑞克
这个作者很懒,什么都没留下…
展开
-
Qt使用Keepalive机制实现断线重连
传输控制协议(TCP)存活包为可选特性,且默认关闭。存活包内没有数据。在以太网网络中,存活包的大小为最小长度的几帧(64字节)。存活时长(英语:Keepalive time)即空闲时,两次传输存活包的持续时间。TCP存活包时长可手动配置,默认不少于2个小时。存活间隔(英语:Keepalive interval)即未收到上个存活包时,两次连续传输存活包的时间间隔。存活重试次数(英语:Keepalive retry)即在判断远程主机不可用前的发送存活包次数。原创 2022-09-24 14:51:07 · 2688 阅读 · 0 评论 -
C++动态库调用宿主进程中的对象方法《纯虚函数的使用》
假设demo.cpp中需要用到动态库libadd.so中的某个函数,可能是,那么我们编译时就需要链接上libadd.so,gcc参数中-L./libs指定了当前目录下的libs目录为库的目录,-ladd指定了libadd.so动态库文件,注意这里并未使用全称,让编译器自动适配即可。原创 2022-09-24 14:49:32 · 601 阅读 · 0 评论 -
Qt使用UDP协议传输数据(分包,组包,GZIP压缩数据)
这篇文章主要的目的是讲UDP传输的字节限制以及用分包和组包去解决这个限制,本文直接将桌面截屏后传输是低效的做法,使用H.264或H.265对图像进行处理能减少传输的数据量。原创 2022-09-24 14:47:39 · 2841 阅读 · 0 评论 -
使用ffmpeg解码h264视频流转成QImage
【代码】使用ffmpeg解码h264视频流转成QImage。原创 2022-09-24 14:42:56 · 830 阅读 · 0 评论 -
多线程加锁的意义与死锁
*当两个线程分别占有m2和m1时,死锁就这样发生了。**因为线程1占有了m1等待m2解锁后才能解锁m1而线程2占有了m2等待m1解锁后才能解锁m2,所以此时两个线程都被堵塞住无法继续正常执行了。当线程1占有m1时,线程2等待m1解锁**(此时线程2无法占用m2锁)**,这时候线程1继续占有m2,然后解锁m2和m1,当m1解锁后线程2才能继续执行,所以不会产生死锁。我的理解是:在单核系统中,多线程是并发执行的;在多线程开发中,如果有一个变量对多线程是可见的,那么这个变量是非线程安全的。原创 2022-09-24 14:37:18 · 605 阅读 · 0 评论 -
Qt中connect的第五个参数与多线程
当控制返回到接收者线程的事件循环时,将调用该槽函数。槽函数在接收者的线程中执行。:信号发出时将立即调用该槽函数。槽函数在信号发送者所在的线程中执行。这里重点关注下我加粗的部分。原创 2022-09-24 14:35:35 · 1884 阅读 · 0 评论