WLG/utility/udp_scan.hpp

93 lines
2.0 KiB
C++
Raw Permalink Normal View History

2024-10-22 19:04:25 +08:00
#ifndef UDP_SCAN_HPP_
#define UDP_SCAN_HPP_
2024-10-19 16:02:41 +08:00
#include <vector>
#include <string>
#include <boost/asio.hpp>
2024-10-23 22:25:03 +08:00
#include <boost/thread/mutex.hpp>
2024-10-19 16:02:41 +08:00
#include <json/json.h>
#include <boost/array.hpp>
2024-10-22 19:04:25 +08:00
#include <boost/container/detail/singleton.hpp>
2024-10-22 20:56:21 +08:00
#include "common/global.hpp"
2024-10-19 16:02:41 +08:00
#define MULTICAST_PORT_SEND 7302 //根据接收组播udp发送端口
#define SYSUDPIP "127.0.0.1"
#define SYSUDPPORT "9999"
#define RECIEVE_CONNECT_STATUS 1 //QT连接确认
#define RECIEVE_CONFIG_GET 3 //获取配置信息
#define RECIEVE_WIFI_CONTROL 4 //wifi操作
#define RECIEVE_WAVEDATA_CONTROL 7 //原始数据操作
#define CMD_TYPE_CONNECTQT 1
#define RECIEVE_CONFIG_GET 3
#define RECIEVE_WIFI_CONTROL 4
#define RECIEVE_WAVEDATA_CONTROL 7
2024-10-22 19:04:25 +08:00
class UdpSys {
2024-10-19 16:02:41 +08:00
public:
UdpSys();
~UdpSys();
/**
* @brief
* @param pData
* @return void
*/
void SendUdpToSingle(std::string pData);
/**
* @brief
* @return void
*/
void StartConnectSysUdp();
/**
* @brief
* @return void
*/
void ClearConnect();
private:
/**
* @brief
* @return void
*/
void handle_send_to(const boost::system::error_code& ec,
size_t trans);
/**
* @brief
* @return void
*/
void recvUdpData();
/**
* @brief
* @return void
*/
void AnalysisDataSys(std::string cmd);
/**
* @brief
* @return void
*/
void HandleRead(const boost::system::error_code& pEc,
std::size_t pBytesTransferred);
private:
boost::mutex udpMutex;
std::string remoteIp;
int remoteport;
boost::asio::ip::udp::endpoint remoteEndPoint;
boost::asio::ip::udp::endpoint senderEndPoint;
boost::asio::io_service mIoSev;
boost::asio::ip::udp::socket udpSock;
boost::array<char,8192> m_buffer;
};
2024-10-22 19:04:25 +08:00
typedef boost::container::dtl::singleton_default<UdpSys> udp_sys;
#endif // UDP_SCAN_HPP_