我是用的《visual c++ 开发基于snmp的网络管理软件》这本书上的程序,执行之后没有错误,但是get操作却不成功,取不到snmp管理信息值,但是把get换成get_next操作却能取到值,请问谁知道是为什么?
程序如下#include <afx.h>
#include "snmp_pp.h"
#include <iostream.h>
#include "Oid.h"void main()
{
Snmp::socket_startup();//初始化
snmp_version version=version1;
int status;
Snmp snmp(status,0,false);
Pdu pdu;
Vb vb;
vb.set_oid((Oid)"1.3.6.1.2.1.2.2.1.5");
pdu+=vb;
UdpAddress address("127.0.0.1:161");
CTarget ctarget(address);
ctarget.set_version(version);
ctarget.set_retry(1);
ctarget.set_timeout(100);
ctarget.set_readcommunity("public");
SnmpTarget *target;
target = &ctarget;
status = snmp.get(pdu,*target); //要是把这个get操作换成get_next就能取到数据,晕;
CString reply_oid="如果显示这个,就说明没成功";
CString reply_value=" ";
if (status == SNMP_CLASS_SUCCESS)
{
pdu.get_vb(vb,0);
reply_oid=vb.get_printable_oid();
reply_value=vb.get_printable_value();
}
cout<<"status的值是"<<status<<'\n';
cout<<"snmp class success的值是"<<SNMP_CLASS_SUCCESS<<'\n';
cout<<"oid的值是:"<<reply_oid<<'\n';
cout<<"oid的值是:"<<vb.get_printable_oid()<<'\n';
cout<<"value的值是"<<reply_value<<'\n';
cout<<"value的值是"<<vb.get_printable_value()<<'\n';
Snmp::socket_cleanup();}请高手指点迷津,谢谢!
程序如下#include <afx.h>
#include "snmp_pp.h"
#include <iostream.h>
#include "Oid.h"void main()
{
Snmp::socket_startup();//初始化
snmp_version version=version1;
int status;
Snmp snmp(status,0,false);
Pdu pdu;
Vb vb;
vb.set_oid((Oid)"1.3.6.1.2.1.2.2.1.5");
pdu+=vb;
UdpAddress address("127.0.0.1:161");
CTarget ctarget(address);
ctarget.set_version(version);
ctarget.set_retry(1);
ctarget.set_timeout(100);
ctarget.set_readcommunity("public");
SnmpTarget *target;
target = &ctarget;
status = snmp.get(pdu,*target); //要是把这个get操作换成get_next就能取到数据,晕;
CString reply_oid="如果显示这个,就说明没成功";
CString reply_value=" ";
if (status == SNMP_CLASS_SUCCESS)
{
pdu.get_vb(vb,0);
reply_oid=vb.get_printable_oid();
reply_value=vb.get_printable_value();
}
cout<<"status的值是"<<status<<'\n';
cout<<"snmp class success的值是"<<SNMP_CLASS_SUCCESS<<'\n';
cout<<"oid的值是:"<<reply_oid<<'\n';
cout<<"oid的值是:"<<vb.get_printable_oid()<<'\n';
cout<<"value的值是"<<reply_value<<'\n';
cout<<"value的值是"<<vb.get_printable_value()<<'\n';
Snmp::socket_cleanup();}请高手指点迷津,谢谢!
解决方案 »
- 服务端正常发送数据而客户端接收的数据接收不正常好像卡在那里啦!
- windows snmp++ oid找不到
- 初学MFC...买什么书比较好??????
- MFC问题:请问怎样在C*View类中调用当前(活动)的CMainFrame类的函数
- 哪里有《win32多线程程序设计》的光盘源代码下载呢?
- 如何判断字符串中的字符是汉字(或全角字符)?
- delphi语言不伦不类的,大家不要学了,没前途~~~~学学C吧
- 关于GetNextPathName的一个很困惑的问题
- 请问在VC下能使用DOS的中断调用吗?
- 超级简单问题(FOR 大家)------->不知道怎么办了===超难(FOR ME)
- BCG控件BCGPTabWnd控件的设置问题
- 怎样获取远程主机的MAC地址
这个程序运行后的snmp错误信息是没有这个snmp变量,因为这个oid后面少了一个索引值1,把1.3.6.1.2.1.2.2.1.5改成1.3.6.1.2.1.2.2.1.5.1就行了。