Snmp4j程式設計簡介之二 PDU

2021-04-19 00:55:36 字數 1532 閱讀 7944

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...