You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

NetDataRecv.h 917 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <QMutex>
  3. #include <QThread>
  4. #include <QUdpSocket>
  5. #include "ConfigInfo.h"
  6. #include "ValidProcess.h"
  7. #define NET_BUFFER 65535
  8. struct Network {
  9. QString ip; ///< IP Address
  10. unsigned short port; ///< Port number
  11. int type; ///< UDP socket type, 1: singlecast, 2: multicast, 3: broadcast
  12. };
  13. class NetDataRecv : public QThread
  14. {
  15. Q_OBJECT
  16. public:
  17. NetDataRecv(QObject* parent = nullptr);
  18. ~NetDataRecv();
  19. void init(Frame* frame, Network network, IProcess* process);
  20. void initNetwork();
  21. void send();
  22. void stop();
  23. private:
  24. Frame* m_pFrame;
  25. Network m_network;
  26. IProcess* m_pProcess;
  27. QUdpSocket* m_socketId;
  28. ip_mreq m_mreq;
  29. bool m_bNeedWork;
  30. QMutex m_mutex;
  31. QFile m_file;
  32. QByteArray m_fileArray;
  33. private:
  34. void run() override;
  35. void createDataPath(QString title);
  36. };