使用snmpsharpnet运行SNMP时出错
本文关键字:出错 SNMP 运行 snmpsharpnet 使用 | 更新日期: 2023-09-27 18:07:21
我遇到了使用snmpsharpnet库运行SNMP get命令的问题。我正在使用他们提供的运行一个简单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).
提前感谢!
您没有收到远程主机对您发送的请求的响应。这就是套接字异常的原因。它们有3个,因为SimpleSnmp
类的默认设置是尝试3次发送&从服务器接收响应。
如果您将snmp
对象的Retry
属性设置为比2
大的数字,它将发出更多的请求并侦听更多的响应,从而产生更多的这些异常。
snmp
的标准行为是不对(a)格式错误或(b)没有正确的社区字符串的请求生成任何响应。
如果您显示了运行这段代码后产生的控制台输出,我很确定它会说Request failed.