关于snmp++求教?
最近在做关于snmp++的东西,需要用到异步模式的get去获取设备的信息,但是在使用的时候发现了一个很奇怪的问题,异步模式Get需要一个回调函数,我也写了,但是不会进入到回调函数中,只有snmp对象销毁的时候才会进入回调函数中。我抓包也看了,收到了返回的数据包。后来我在异步Get后面添加了阻塞模式的Get,然后就进入到回调函数中。
那位能帮我看下到底是怎么回事啊
Snmp *snmp;
void GetFun(int reason, Snmp *session, Pdu &pdu, SnmpTarget &target, void *data);
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
snmp_version version = version1;
Snmp::socket_startup();
int retries=1;
unsigned long timeout=100;
u_short port= 161;
OctetStr community("public");
int status;
UdpAddress address("192.168.2.2");
CString strOid = "1.3.6.1.4.1.20353.2.1.1.85.1.0.0.23";
Oid oid(strOid);
Pdu pdu;
Vb vb;
vb.set_oid(oid);
pdu += vb;
address.set_port(port);
CTarget ctarget( address);
ctarget.set_version( version2c);
ctarget.set_retry( retries);
ctarget.set_timeout( timeout);
ctarget.set_readcommunity(community);
SnmpTarget *target;
target = &ctarget;
snmp = new Snmp(status);
status = snmp->get( pdu, *target,GetFun);
// snmp->get( pdu, *target);
// if (status == SNMP_CLASS_SUCCESS)
// {
// pdu.get_vb( vb,0);
//
// CString strval = vb.get_printable_value();
// AfxMessageBox(strval);
// }
return 0;
}
void GetFun(int reason, Snmp *session, Pdu &pdu, SnmpTarget &target, void *data)
{
Vb vb;
CString str1;
str1.Format("%d",reason);
AfxMessageBox(Snmp::error_msg(reason));
pdu.get_vb(vb,0);
CString strValue1;
strValue1 = vb.get_printable_value();
AfxMessageBox(strValue1);
}
那位能帮我看下到底是怎么回事啊
...全文
相关推荐
snmp++实现Trap接收
同时,利用SNMP++提供的日志功能进行调试。总结,通过以上步骤,你可以在MFC应用中使用SNMP++库实现Trap接收,并监控网络接口的状态变化。
SNMP++ 01-SNMP request time out问题的解决
一、问题描述 我想编写一个与本地 SNMP 代理进行通信的客户端程序,由于 SNMP代理是位于本地主机上,于是 客户端中 target地址采用回环地址。另外,SNMP代理的共同体设置为“private-xxq”,权限设置为“只读”,可以接收的SNMP包指定为“本机”(这些配置如图1-1所示)。同样地,在原程序中也使用与本地SNMP代理相同的共同体。部分源码如下。我运行程序后,出现“SNMP r...
SNMP++ 00-开发准备篇
阅读完本文你可以学到: (1)在 Windows 平台下如何搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3),并给出测试程序。 一、搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3)(在 VS2013 下演示) 1. 下载 SNMP++ 和LIBDES SNMP++官方下载地址:http://www.agentpp.com/download.html#...
用agent++写的snmp代理程序
在这个“用agent++写的snmp代理程序”中,我们将探讨SNMP的基本概念、Agent++的作用以及如何利用Agent++实现GET、SET请求和TRAP发送功能。
SNMP++开发的MIB浏览器(含源码)
SNMP++是SNMP协议的一种C++实现,提供了更高级别的抽象和面向对象的接口,使得开发SNMP应用变得更加方便。


网络编程
