int waitTime = 300;
// 创建一个定时器,设置单次定时器,定时时间为0.3秒
QTimer timer;
timer.setSingleShot(true);
timer.start(waitTime);
// 等待定时器超时触发
QEventLoop loop;
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
loop.exec();
//间隔上述事件后,继续发送后面的数据
sendData(); //发送文件内数据的函数
这段程序创建了一个定时器对象,设置为单次定时器(只会触发一次),然后下面写一个事件循环,在循环中等待定时器时间到的信号,在槽函数里面设置退出事件循环。
最后发送包头后面的数据
经测试,可有效防止包头粘包。