扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:seafrog 来源:论坛 2007年11月13日
关键字:
typedef struct _ACCESS_INFO { USHORT protocol; ULONG sourceIp; ULONG destinationIp; USHORT sourcePort; USHORT destinationPort; }ACCESS_INFO; |
public __gc class IoCtrl { public: USHORT protocol; //网际协议类型 ULONG sourceIp; //源IP地址 ULONG destinationIp; //目的IP地址 USHORT sourcePort; //源端口 USHORT destinationPort; //目的端口 ……………… } |
void GetAccessInfo() { ACCESS_INFO ai; bool result=(ReadIo(GET_INFO,&ai,sizeof(ai))==SUCCESS); this->protocol=ai.protocol; this->sourceIp=ai.sourceIp; this->destinationIp=ai.destinationIp; this->sourcePort=ai.sourcePort; this->destinationPort=ai.destinationPort; } |
public class InfoEvent:EventArgs { string sInfo; //用来存放输出信息的私有成员 public int pLength; //CommonFunction.sPort数组的长度 public ushort protocol; //网络通信协议类型 public uint sourceIp; //数据包的源IP public uint destinationIp; //数据包的目的IP public ushort sourcePort; //数据包的源端口 public ushort destinationPort; //数据包的目的端口 ……………………………… } |
//声明委托事件,用来向主程序传递数据。 __delegate void DriverInfo(Object* sender, InfoEvent* e); //声明响应事件函数。 __event DriverInfo* OnDriverInfo; |
//用来获得驱动程序信息的进程,在主程序中将开启该进程。 void GetInfoThreadProc() { this->hEvent=OpenEvent(SYNCHRONIZE,FALSE,"NBEvent"); if(!ic->GetDriverHandle()) { return; } while(true) { f(!hEvent) ExitThread(0); WaitForSingleObject(this->hEvent,INFINITE); nPackets++; ic->GetAccessInfo(); ic->ResetEvent(); //定义一个主程序可以识别的对象,通过OnDriverInfo传给主程序。 InfoEvent*ie=new InfoEvent(ic->protocol,ic->sourceIp,ic->destinationIp,ic->sourcePort,ic->destinationPort); OnDriverInfo(this,ie); } ic->CloseDriverHandle(); return; } |
pInfo=new InfoProvider(); //开启与驱动交换信息的进程 FilterThread=new Thread(new ThreadStart(pInfo.GetInfoThreadProc)); FilterThread.IsBackground=true; FilterThread.Start(); pInfo.OnDriverInfo+=new InfoProvider.DriverInfo(DealWithInfo); |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者