接收端头文件
#ifndef UDPRECEIVER_H
#define UDPRECEIVER_H
#include <QObject>
#include <QUdpSocket>
#include "common_h.h"
class UdpReceiver : public QObject
{
Q_OBJECT
public:
explicit UdpReceiver();
public:
~UdpReceiver();
private:
QUdpSocket *uSocket;
traffic_state_report_udp buff;
public slots:
void process_cdti_udp();
void start_udp();
signals:
void process_cdti(traffic_state_report_p report);
};
#endif // UDPRECEIVER_H
接收端实现
#include "udpreceiver.h"
void UdpReceiver::process_cdti_udp()
{
QByteArray data;
while(uSocket->hasPendingDatagrams())
{
//data.resize(uSocket->pendingDatagramSize());
data.resize(sizeof(traffic_state_report_udp));
uSocket->readDatagram(data.data(), data.size());
if(data.size()==sizeof(traffic_state_report_udp))
{
memcpy(&buff,data.data(),sizeof(traffic_state_report_ud