1. 程式人生 > >SNMP++的深入學習(三)

SNMP++的深入學習(三)

三、初顯端倪的Snmp類
Snmp類封裝了一次SNMP通訊活動建立的UDP連線,在所有的類中,只有該類使用網路資源和代理進行了通訊連線。Snmp類做了通訊活動中大部分的工作,程式設計師所做的工作只需要宣告一個該類的物件,並設定對應的引數即可。
原始碼如下:
#include "snmp_pp.h"
#include
#define SYSDESCR "1.3.6.1.2.1.1.1.0"    // Object ID for System Descriptor
void main()
{ Snmp::socket_startup(); //socket_startup()靜態成員函式,初始化Winsocket的相關函式
 int status;    // return status      
   CTarget ctarget( (IpAddress) "192.168.3.1");    // SNMP++ v1 target
   //使用一個Address物件構造一個Ctarget物件
   Vb vb( SYSDESCR);    // SNMP++ Variable Binding
  Pdu pdu;    // SNMP++ PDU
 
    //-------[ Construct a SNMP++ SNMP Object ]---------------------------------------
  Snmp snmp( status);    // Create a SNMP++ session 建立一個新的snmp物件,
  //第一個引數表示建立狀態,0表示成功
   if ( status != SNMP_CLASS_SUCCESS) {    // check creation status
      cout << snmp.error_msg( status);    // if fail, print error string
      return; }
 
   //-------[ Invoke a SNMP++ Get ]-------------------------------------------------------
   //invoke的意思是requests help or protection(from a deity)
  pdu += vb;    // add the variable binding
  if ( (status = snmp.get( pdu, ctarget)) != SNMP_CLASS_SUCCESS)
      cout << snmp.error_msg( status);
   else {
      pdu.get_vb( vb,0);    // extract the variable binding
      cout << "System Descriptor = "<< vb.get_printable_value(); }    // print out
   Snmp::socket_cleanup(); //socket_cleanup()靜態成員函式,釋放被上面函式初始化的winsocket的資源
}
程式執行結果如圖8所示:

相關推薦

SNMP++的深入學習()

三、初顯端倪的Snmp類Snmp類封裝了一次SNMP通訊活動建立的UDP連線,在所有的類中,只有該類使用網路資源和代理進行了通訊連線。Snmp類做了通訊活動中大部分的工作,程式設計師所做的工作只需要宣告一個該類的物件,並設定對應的引數即可。原始碼如下:#include "snmp_pp.h"#include#

影象顯示深入學習:視窗機制分析

上一篇文章影象顯示深入學習一:Activity啟動過程中介紹了啟動一個Activity在整個Android系統中執行的流程,其中可以看到Window的建立,這篇文章就整理一下Window機制的實現過程吧。 吐個槽,今年大部分時間在公司一直在做SDK專案,UI方面的工作涉及的比較少,現在重

springboot深入學習()-----docker、spring data

一、spring data思路   spring data使用統一的api來對各種資料庫儲存技術進行資料訪問操作提供了支援,包括oracle、mysql、redis、mongoDB等等。主要是通過spring data commons專案來實現的,提供了crud、查詢、排序和分頁等等功能。 spring

Hibernate深入學習():繼承與多型查詢,joined-subclass與union-subclass

在上一篇中,我們對hibernate中3種繼承有了初步瞭解,並對subclass進行了測試,以及知道了它的諸多缺點,這些缺點導致subclass在開發中並不常用,接下來我們看看剩下的兩種繼承方式:joined-subclass與union-subclass 本

spring cloud深入學習()-----服務消費

key request configure bsp 簡單 zone 維護 地址 發送 在上一篇博文中簡單實現了eureka-server以及eureka-provider,後面會實現eureka-cosumer,現在針對eureka做進一步的詳解。 微服務整體架構

Spring+SpringMVC+MyBatis深入學習及搭建()——MyBatis全局配置文件解析

保持 nbsp 延遲加載 行為 span 方便 doc ima actor 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有寫到Spring+SpringMVC+MyBatis深入學習及搭建(二)&

Redis深入學習筆記()RDB及AOF流程

del 每秒調用 查看 單個 一個 重寫 use 物理內存 深入學習 RDB是Redis持久化數據的一種方式,是執行時間點的Redis內存快照,redis數據還原時加載rdb文件,Redis的主從數據同步也是基於RDB實現的。 RDB流程:

spring深入學習)IOC 之 載入 Bean

先看一段熟悉的程式碼: ClassPathResource resource = new ClassPathResource("bean.xml"); DefaultListableBeanFactory factory = new DefaultListableBeanF

[TensorFlow深度學習深入]實戰·分別使用DNN,CNN與RNN(LSTM)做文字情感分析(機器如何讀懂人心)

[TensorFlow深度學習深入]實戰三·使用Word2Vec與RNN(LSTM)做文字情感分析(機器如何讀懂人心) 用到了 DNN CNN Word2Vec RNN(LSTM) 不太清楚的可以回顧我們之前的博文。 使用了全連線,卷積神經網路與迴

深入學習jQuery選擇器系列第篇——過濾選擇器之索引選擇器

通用形式$(':eq(index)')  $(':eq(index)')選擇器選擇索引等於index的元素(index從0開始),返回單個元素索引  [注意]索引選擇器的索引和子元素選擇器的索引有明顯的不同  【1】索引選擇器索引從0開始,而子元素選擇器索引從1開始  【2】索引選擇器的索引是指定元素的索引,

資料結構與演算法之 深入學習排序

視訊課堂https://edu.csdn.net/course/play/7621 在本章中,你將學習: 通過使用快速排序來排序資料 通過使用歸併排序來排序資料 快速排序演算法

Spring+SpringMVC+MyBatis深入學習及搭建()——MyBatis全域性配置檔案解析

MyBatis的全域性配置檔案SqlMapConfig.xml,配置內容和順序如下: properties(屬性) setting(全域性配置引數) typeAliases(類名別名) typeHandlers(類名處理器) objectFactory(物件工廠) plugins(外掛) environm

SNMP++的深入學習(二)

二、必須經過的階段Vb類、Pdu類使用Vb類,主要目的是在處理返回的SNMP應答包時,獲得返回的SNMP變數值,有時也需要獲得返回的SNMP變數OID。原始碼如下:#include "snmp_pp.h"#include "oid.h"#include "vb.h"#include <iostream.

logStash深入學習攔截器filter(

mutate 是對事件中內容做出一些改變 替換 刪除 等操作 1. 修改事件中的字元   將我日誌中的 回車換行符  替換為空 mutate { gsub => [ "me

深入學習RabbitMQ():channel的confirm模式

      上一篇部落格我們介紹了使用RabbitMQ可能會遇到的一個問題,即生產者不知道訊息是否真正到達broker代理伺服器,隨後通過AMQP協議層面為我們提供的事務機制解決了這個問題,但是採用事務機制實現會降低RabbitMQ的訊息吞吐量,那麼有沒有更加高效的解決方式

OkHttp深入學習)——Cache

兩節的學習基本上對於okhttp的使用和實現有了一定的瞭解,不過還有一些比較重要的概念如快取、ConnectionPool和OkHttpClient等都沒有進行詳細的說明。因此本節對okh

Maven深入學習)- 聚合與繼承

1.聚合 在使用Maven的過程中,手邊可能有很多個專案,都需要打包,或者同時進行一些操作,這時候,如果一個一個手動的去操作, 就會顯得很麻煩。這時候,使用聚合就可以解決問題了。 假設,現在已有專案brother01,brother02,我們想要同時將這兩個專

深入學習c++--多線程編程()thread的兩種死法

sleep str world 線程編程 執行 mes obj future name 1. 生成了一個線程,需要告訴編譯器是否管理 必須告訴編譯器是不管理還是管理,否則直接down了 #include <iostream> #include <

深入學習Spring框架()- AOP面向切面

   1.什麼是AOP?   AOP為 Aspect Oriented Programming 的縮寫,即面向切面程式設計, 通過預編譯方式和執行期動態代理實現程式功能的統一維護的一種技術.。AOP是OOP的延續, 是函數語言程式設計的一種衍生範型。利用AOP可以對業務邏輯的各個部分進行隔離, 從而使得業

Struts2學習----------Action搜索順序

round col uil 1-1 earch sch 預覽 image pin ? 版權聲明:本文為博主原創文章,轉載請註明出處 Struts2的Action的搜索順序   http://localhost:8080/path1/path2/student.action