QUdpSocket ,QTimer,QTcpSocket 都支持事件循环。
方式1,就是派生一个继承Object的类A,在A中使用QUdpSocket,这种方式可以方便的把upd接收压如线程中。但是要实现收发同步怎么,即,udp发送一帧数据,然后等待反馈,收到反馈再发送下一阵。这里是否可以使用QTimer来实现,尚且不知,但是下面要说的方式二,已经实现了再一个线程中实现发和收的同步。
方式2:继承QThread,借用run(),使用事件循环。如下图.变量timer表示定时,outTimer表示阻塞等待反馈。借用lamda让发送和接收同步。做到有些场合需要发送数据再等待确认结果自动发送下一包数据。比如文件传输,关于outTimer阻塞,也是自定义了一个时间循环。超时的计算或者超时后怎么处理貌似还不方便,如果在windows上开放,可以使用waitForsinle来代替,if else。