2011-04-26 79 views
1

超時我有簡單的例子:問題與netsnmp LIB

 
import netsnmp 
var = netsnmp.Varbind('ifHCInOctets','0') 
res = netsnmp.snmpgetnext(var,Version = 2,DestHost='localhost',Community='public',Timeout=1000000) 
print res[0] 

 
time python2 test.py
告訴我:

 
real 0m4.086s 
user 0m0.073s 
sys  0m0.007s 

爲什麼4秒= 1000000? snmpd服務器無法在本地主機上工作

回答

3

當您通過Timeout=?時,您將設置snmp內部選擇循環在註冊超時之前應該等待的最長時間。將此設置爲1000000意味着「等待100萬微秒」,即1秒。

但是,還有一個Retries=?參數指定snmp客戶端在超時後重新嘗試請求的次數,因此對於Timeout=1000000, Retries=0 select將僅在1秒內嘗試1次請求和超時。如果Retries=1它會嘗試兩次,並在2秒內超時。

因此,根據Timeout和Retries的組合,您將看到不同數量的延遲。

默認的重試次數是3次,所以1次嘗試+3次重試,每次1秒鐘= 4秒。