这是我的代码,使用QuickSend方法得到sysDesc是可以的,但是对于符号率,它总是失败的。我不知道,同样的代码实际上适用于我之前编写的另一个项目(我再次运行它,一切都很好)。
var
mySNMP: TidSNMP;
SymbolRate, sysDesc: string;
begin
mySNMP:=TidSNMP.Create(nil);
try
mySNMP.Host:=Trim(IpEdit.Text);
mySNMP.Community:=Trim(CommEdit.Text);
mySNMP.ReceiveTimeout:=1000;
if mySNMP.QuickSend('1.3.6.1.2.1.1.1.0', mySNMP.Community, mySNMP.Host, sysDesc)
then
ShowMessage(sysDesc)
else
ShowMessage('Send Failed');
if mySNMP.QuickSend('.1.3.6.1.4.1.6247.24.1.2.2.12.0',mySNMP.Community, mySNMP.Host,SymbolRate)
then
ShowMessage('Send OK')
else
ShowMessage('Send Failed');
finally
mySNMP.Free;
end;发布于 2014-05-30 16:32:18
如果以下情况下,QuickSend() (和一般的SendQuery() )返回False:
WSAECONNRESET)。Reply.ErrorStatus属性)。我建议的第一件事是从失败的OID中删除领先的.:
if mySNMP.QuickSend('1.3.6.1.4.1.6247.24.1.2.2.12.0',mySNMP.Community, mySNMP.Host,SymbolRate)这样,它与您的earlier question中的查询代码相匹配,该查询代码正在工作:
SNMP.QuickSend('1.3.6.1.4.1.6247.24.1.2.2.12.0',SNMP.Community,SNMP.Host,SRate);https://stackoverflow.com/questions/23950813
复制相似问题