我是用的《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();}请高手指点迷津,谢谢!