pdu(協議資料單元),用來表示管理站跟**站點進行通訊的資料。包括pdu的型別、傳輸的資料集合、錯誤說明等。
除snmpv1 trap外,其他操作型別的pdu大致相同。
snmp4j針對snmp的各個版本,開發了三個有關pdu的類。pdu(針對snmpv2c)、pduv1(針對snmpv1)、 scopedpdu(針對snmpv3),但三個類除各自特別的一些引數外,都基本相同。所以snmp4j在設計的時候,將pdu設計成另外兩個的超類, 使他們能夠共享大部分功能。
(1)pdu
1)pdu型別(snmpv1支援5種,get、set、getnext、trap、getresponse,snmpv2c增加了getbulk、inform)
int gettype()
void settype(int type)
2)錯誤(主要有6種錯誤,請參見rfc)
void seterrorstatus(int status)
int geterrorstatus()
string geterrorstatustext()
void seterrorindex(int index)
int geterrorindex()
3)變數
void add(variablebinding vb) // 對於除get、getnext、getbulk外
void addall(variablebinding vbs) // 對於除get、getnext、getbulk外的
void addoid(variablebinding vb) // 對於get、getnext、getbulk
void addalloid(variablebinding vbs) // 對於get、getnext、getbulk
variablebinding get(int i)
variablebinding toarray()
vector getvariablebindings()
void set(int i,variablebinding vb)
void remove(int i)
void clear()
int size()
(2)pduv1
pduv1繼承了pdu,除snmp v1 trap操作外 ,其它都跟pdu相同。因為snmp v1的trap設計pdu不同於其他操作的pdu,它包括:物件識別符號(oid)、**ip位址(agent-addr)、時間戳(time- stamp)、通用**型別(generic-trap)、特定**型別(specific-trap)。所以相應的增加了對這些欄位的get/set操 作。具體參見api文件。
(3)scopedpdu
snmpv3採用了不同安全策略,它的pdu也增加了有關安全方面的幾個字段:上下文名稱(contextname)、上下文引擎id(contextengineid)等,其它pdu欄位屬於u**來管理。
所以scopedpdu在pdu的基礎上增加了相應的get/set操作。參見api。
示例**如下:(摘自api文件)
Snmp4j程式設計簡介之二 PDU
snmp4j程式設計簡介之二 pdu pdu 協議資料單元 用來表示管理站跟 站點進行通訊的資料。包括pdu的型別 傳輸的資料集合 錯誤說明等。除snmpv1 trap外,其他操作型別的pdu大致相同。snmp4j針對snmp的各個版本,開發了三個有關pdu的類。pdu 針對snmpv2c pduv...
Snmp4j程式設計簡介之二 PDU
snmp4j程式設計簡介之二 pdu pdu 協議資料單元 用來表示管理站跟 站點進行通訊的資料。包括pdu的型別 傳輸的資料集合 錯誤說明等。除snmpv1 trap外,其他操作型別的pdu大致相同。snmp4j針對snmp的各個版本,開發了三個有關pdu的類。pdu 針對snmpv2c pduv...
Snmp4j程式設計簡介之二 PDU
snmp4j程式設計簡介之二 pdu pdu 協議資料單元 用來表示管理站跟 站點進行通訊的資料。包括pdu的型別 傳輸的資料集合 錯誤說明等。除snmpv1 trap外,其他操作型別的pdu大致相同。snmp4j針對snmp的各個版本,開發了三個有關pdu的類。pdu 針對snmpv2c pduv...