#pragma once #include "IVrEthMonitor.h" class CVrEthMonitor : public IVrEthMonitor { public: CVrEthMonitor(); ~CVrEthMonitor(); /// @brief /// 开始监控 /// @return 成功返回TRUE virtual int StartMonitor(NetNotify func, void* pParam); /// @brief /// 停止监控 virtual void StopMonitor(); private: void _MonitorTask(); void _parse_rtattr(struct rtattr **tb, int max, struct rtattr *attr, int len); ///显示连接信息: 当网卡变动的时候触发这个信息,例如插/拔网线,增/减网卡设备,启用/禁用接口等. void _ifinfomsg(struct nlmsghdr *nh); ///显示地址信息: 当地址变动的时候触发这个信息,例如通过DHCP获取到地址后 void _ifaddrmsg(struct nlmsghdr *nh); /// 显示路由信息: 当路由变动的时候触发这个信息 void _rtmsg(struct nlmsghdr *nh); NetNotify m_fNotify; void* m_pParam; bool m_bRunning; };