简单用法 QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。 为了描述方便,这里假设主线程调用Send()往通信口发送一个数据包,然后阻塞等待回包才继 Read More
posted @ 2018-05-24 22:47
findumars
Views(745)
Comments(0)
Diggs(0)
对生产者和消费者问题的另一个解决办法是使用QWaitCondition,它允许线程在一定条件下唤醒其他线程。其中wakeOne()函数在条件满足时随机唤醒一个等待线程,而wakeAll()函数则在条件满足时唤醒所有等待线程。 1、bool wait (QMutex * mutex,unsigned Read More
posted @ 2018-05-24 22:41
findumars
Views(1699)
Comments(0)
Diggs(0)
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday Read More
posted @ 2018-05-24 22:38
findumars
Views(3580)
Comments(0)
Diggs(0)
在TCP/IP中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。没有FRR,如果数据包丢失了,TCP将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了FRR,如果接收机接收到一个不按顺 Read More
posted @ 2018-05-24 22:36
findumars
Views(8257)
Comments(0)
Diggs(0)
卫星网络中使用TCP协议的劣势 为了避免产生网络拥塞,原TCP协议综合采用了慢启动、拥塞避免、快速重传以及快速恢复等算法。但这些算法应用的前提是网络发生拥塞造成丢包,然而在误码率相对较高的卫星通信系统中,部分丢包是由误码造成的,tcp协议对此不能区分,从而造成TCP传输性能的恶化。 1、 大传播延时 Read More
posted @ 2018-05-24 22:35
findumars
Views(1668)
Comments(0)
Diggs(0)
TCP的几大模块:分段与流,滑窗,连接,流量控制,重新发送,堵塞控制。 1、checksum:在发送TCP报文的时候,里面的信息可能会因为环境的问题,发送变化,这时,接收信号的时候就需要通过checksum,进行校验,一般处理:如果没问题的话,就接受,有问题的话就丢弃。 2、超时重传机制:接收端在接 Read More
posted @ 2018-05-24 22:33
findumars
Views(715)
Comments(0)
Diggs(0)
TCP的流量控制和拥塞控制 TCP的流量控制 1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 设A向B发送 Read More
posted @ 2018-05-24 22:31
findumars
Views(877)
Comments(0)
Diggs(0)
一、滑动窗口 滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。 对ACK的再认识,ack通常被理解为收到数据后给出的一个确认ACK,ACK包含两个非常重要的信息: 一是期望接收到的下一字节的序 Read More
posted @ 2018-05-24 22:29
findumars
Views(2817)
Comments(0)
Diggs(0)
自己的u盘突然提示写保护,而且也没有写保护开关,怎么都写不进文件,试了很多办法都无法去除写保护,最后找了一个u盘量产工具,搞定: 插上u盘后,会检测到u盘,点“开始"后静静等待它完成,u盘又可以正常使用了。 工具下载地址:https://maxwoods.ctfile.com/fs/758954-2 Read More
posted @ 2018-05-24 18:33
findumars
Views(1795)
Comments(0)
Diggs(0)
在网上直接下载别人编译好的Qt库,为自己使用省了不少事。但往往也会遇到些问题,其中Qt version is not properly installed,please run make installQt没有被正确安装,请运行make install这个问题是比较常见的一个。网上看了一个帖子,终于 Read More
posted @ 2018-05-24 16:36
findumars
Views(5987)
Comments(0)
Diggs(1)