如何接受SNMP Trap事件
我在VC6下编写SNMP控制台程序和代理程序,使用的是基本的API(没有用WinSnmp)。
我是这样触发陷阱事件的:
1. 在完成了一个操作后,授信“SnmpExtensionInit”中的phSubagentTrapEvent。
2. SnmpExtensionTrap中,设置完参数后,返回TRUE。
捕获陷阱事件的流程是:
1. SnmpMgrTrapListen( hEvent );
2. WaitForSingleObject(hEvent,INFINITE);
3. while(TRUE)
{
SnmpMgrGetTrap();
}
通过调试,我看到“陷阱事件”被成功触发了,但是管理控制台始终收不到该事件。
不知道什么原因。
看网上对陷阱事件的解释是:SNMP trap(SNMP 陷阱):某种入口,到达该入口会使SNMP被管设备主动通知SNMP管理器,而不是等待SNMP管理器的再次轮询。
然后又看了控制面板、管理工具、服务中对“SNMP Trap Service”的解释是“接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序。”
我就搞不明白了:
陷阱事件只能通知给代理所在的计算机吗?
安装在背的设备上的管理控制台是否能够收到陷阱信息?
我的控制台程序和代理程序是在一台机子上的,为什么收不到呢?