使用 snmpsharpnet 运行 SNMP 代码时出错

问题描述 投票:0回答:1

我在使用 snmpsharpnet 库运行 SNMP get 命令时遇到问题。我正在研究他们提供的一个用于运行简单获取的示例,但它出错了。我已经测试过在盒子上运行这个 OID 并且我能够得到响应,但我不能使用这个程序

我的代码如下所示:

try{
    SimpleSnmp snmp = new SimpleSnmp(HOST, COMMUNITY);

    Pdu pdu = new Pdu();
    //pdu.Type = SnmpConstants.GETNEXT; // type GETNEXT
    pdu.VbList.Add(".1.3.6.1.2.1.1.1.0");
    Dictionary<Oid, AsnType> result = snmp.Get(SnmpVersion.Ver2,pdu); //.GetNext(pdu);
    if (result == null){
        Console.WriteLine("Request failed.");
    }else{
        foreach (KeyValuePair<Oid, AsnType> entry in result)
        {
            Console.WriteLine("{0} = {1}: {2}", entry.Key.ToString(), SnmpConstants.GetTypeName(entry.Value.Type),
            entry.Value.ToString());
        }
    }
}catch (Exception ex){
    Console.WriteLine("Error: " + ex + Environment.NewLine + "-------------------------------------------------------");
}

我收到的错误如下所示:

A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'SnmpSharpNet.SnmpException' occurred in SnmpSharpNet.dll
The thread 0xeec has exited with code 259 (0x103).

提前致谢!

snmp snmpsharpnet
1个回答
1
投票

您没有收到远程主机对您发送的请求的响应。这就是socket异常的原因。其中有 3 个,因为

SimpleSnmp
类的默认设置是尝试 3 次发送和接收来自服务器的响应。

如果将

Retry
对象的
snmp
属性设置为高于
2
的数字,它将发出更多请求并侦听更多响应,从而生成更多此类异常。

snmp
的标准行为是不会对 (a) 格式错误或 (b) 没有正确社区字符串的请求生成任何响应。

如果您显示了运行这段代码所产生的控制台输出,我很确定它会说

Request failed.

© www.soinside.com 2019 - 2024. All rights reserved.