开发网管软件的工具和源码包有很多,如Java的SNMP4J,C++的SNMP++,C的Net-SNMP和AdventNet  Agent Toolkit C Edition工具包。这里我介绍一下使用AdventNet工具来开发Agent(代理端)的思路,并不注重具体实现的过程。

首先我来介绍一下AdventNet  Agent Toolkit C Edition这款工具,当我们安装好后会出现如下图标

点击图标打开软件后看到如下界面,主要用到的有MibEditor(编辑mib)、MibBrowser(浏览mib节点)、Agent Complier(编译mib文件生成对应的h文件和c文件)。

我用MIbEditor编辑定义了一个Mib用MibBrowser打开如下:

然后将这个Mib用Agent Compiler生成对应的h和c文件,用Visual Studio 2013 生成对应的Agent工程,对于一个表会生成三个文件c文件,表名+ftov.c是对文本数据库的读写操作,表名+ hdlr.c用来初始化表和存储空间,表名+instru.c对Get和Set进行处理,我们对工具生成的源码以及Get、Set和Trap过程进行分析。

程序的主要函数调用关系如下图:

其中黄色部分为处理trap主要函数,绿色部分为处理接收SNMP PDU(协议数据单元)的主要函数,蓝色部分为处理发送SNMP PDU。下面对这个几个函数进行具体的解释。

1 BaseLoop()

This function will call an indefinite loop, inside that loop it will manage all protocols functionality.

这个函数将调用一个无限的循环,在这个循环中,它将管理所有的协议功能。

2 CheckReceiveAndProcessSnmpMessage()

This function will do the core functionality of the agent.

此方法将做代理的核心功能。

3 MakeAndSendMasterAgentsTrap()

It will create trap message by taking trapPdu from thetrapPduVector and will put the message in trapvector. PollTrapMessage method will send the trap then and there.
它将从thetrappduvector以trappdu创建陷阱消息并将消息存储在trapvector。polltrapmessage方法将陷阱立即发送。

4 SendTrapMessage()

Creates a trap SNMP message with given entries and add it to the trap list.
创建一个给定的条目陷阱SNMP报文,并将其添加到陷阱列表中。
5 PollTrapList()

Polls the trap list if any Entry is there then it will send trap to the appropriate managers who are registered in the manager list.
调查陷阱列表,如果有任何条目,那么它会发送陷阱到在管理器列表中注册了的适当的管理者。

6 CheckReceiveAndProcessUdpSnmpMessage()

This function will do the core functionality of the agent for Udp domain.
这个函数将UDP域做代理的核心功能。
7 PollAndReceiveSnmpMessage()

It will poll the SnmpSession periodically and return the received SNMP message if available.
它将定期调查snmpsession返回接收到的可用的SNMP报文。
8 ReadSnmpMessage()

It will read a SNMP message from the application. The application may be manager/subagent.

它将从应用程序读取一个SNMP报文。应用程序可能是管理端/副代理。

9 ReadUdpPacket()

It will read the data from the specified socket.

它将从指定的套接字读取数据。

10 ProcessAndSendSnmpPkt()

This function will create receivedInfo and add it in the queue.
这个函数会创建receivedinfo并加入队列中。

11 ProcessRcvdSnmpReq()

It will call processSnmpMessage method to process the received message.
这将调用processsnmpmessage方法处理接收到的消息的。

12 ProcessSnmpMessage()

This function will process the recevied SNMP message depending upon the version.

这个函数将根据SNMP的版本来进行处理接收到的SNMP报文。
13 ParseSnmpV1V2Message()

This function will parse the received Snmp Message and stored it in the Pdu for V1 and V2 parameters.

这个函数将解析接收到的SNMP报文存放在PDU为V1和V2的参数。

14 SendSnmpMessage()

It will send SNMP message to the remote application, the remote may be manager or subagent.

它将发送SNMP消息给远程应用程序,远程可以是管理端或副代理。
csdn源码:http://download.csdn.net/detail/davebobo/9559593

使用AdventNet快速开发网管软件Agent端相关推荐

  1. java 开发网管软件

    Java开发网管软件需要先理解SNMP协议,被管理实体.管理代理和管理软件是先要理解的. 让JAVA理解ASN.1描述的不同的MIB,处理OID的不同类型和应用类型是最基础的工作. 用JAVA开发有不 ...

  2. 超市管理系统的html页面,基于WEB的超市管理系统_站内搜索_Web开发网

    Web开发网 > 站内搜索 > 基于WEB的超市管理系统 系统ctrl+alt+del调出系统任务管理器后,发现没有用户选项卡,如下图 这是因为电脑上Windows用户登录或注销的方式配置 ...

  3. visual studio 设计器不显示_面向国际市场的装置开发运维软件设计与实现

    南京南瑞继保电气有限公司的研究人员陈宏君.张磊.徐睿.曾凯.刘坤,在2019年第3期<电气技术>上撰文,分析了面向国际市场的用户软件现状与问题,介绍了新一代控制保护平台PCS-S系列装置配 ...

  4. HECO使用docker部署单节点的开发网

    文章目录 一. 编写说明 1.1 文档说明 1.2 配置信息 1.3 部署文档信息 二.heco开发网镜像生成 三.heco主链容器生成 3.1 配置文件编写 3.2 预先创建一个账户地址 3.3 创 ...

  5. 【Microsoft Azure 的1024种玩法】七十四.五分钟在Azure Virtual Machines中快速部署一套软件项目管理及自动构建工具

    [简介] Apache Maven由 Apache 软件基金会所提供的一个软件项目管理及自动构建工具,Maven 为开发者提供了一套完整的构建生命周期框架.开发团队几乎不用花多少时间就能够自动完成工程 ...

  6. 《Total Commander:万能文件管理器》——第2.2节.快速了解一款软件的4条途径

    本节书摘来自异步社区<Total Commander:万能文件管理器>一书中的第2章,第2.2节,作者 张玉新,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第 ...

  7. 推荐有关Qt书籍、Qt中文参考文档(网上在线教程)、QTCN开发网和Qt入门视频

    Qt有关书籍 Qt5开发及实例(极力推荐) Qt及Qt Quick开发实战精解 嵌入式Qt开发项目教程 Qt Creator快速入门 第2版 Qt中文参考文档(网上在线教程) http://www.k ...

  8. 我国将投巨资开发网游 抵制进口垄断!

    我国将投巨资开发网游 抵制进口垄断! 来源:赛迪网 据中国新闻出版署消息人士称,中国计划在2004-2008年期间投入10-20亿元人民币,开发100款高质量的网络游戏. 这一投资是为了打击外国进口的 ...

  9. 谈一谈开发网盘中碰到的问题(一)

    谈一谈开发网盘中碰到的问题(一) 首先介绍一下项目:土星云企业网盘(http://www.saturncloud.com.cn/netdisk),一款基于vue+element ui面向企业和用户的人 ...

  10. 前后端分离 Spring Boot + Vue 开发网易云QQ音乐(附源码)!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者|xiangzhihong segmentfault.com/ ...

最新文章

  1. 机器人建图、感知和交互的语义研究综述
  2. vim替换某行到某行的命令方法
  3. [转]关于多线程并发:每个开发人员都应了解的内容(转自Mainz's)
  4. 内存映射文件 写入 卡住_在Java中使用内存映射文件时检测(写入)失败
  5. Linux中screen的用法
  6. 当输入www.baidu.com会发生什么
  7. Coding For Fun 32小时:充满创造、激情、团结的编程马拉松
  8. Windows微秒级定时方法
  9. intel cpu 漏洞 linux,Intel CPU架构漏洞越捅越大:打补丁将损失30%性能
  10. C#读取或设置ScrollLock
  11. 【MATLAB】求定积分
  12. Word中插入Endnote设置指定期刊参考文献样式(逐步操作讲解插入期刊和网页文献)
  13. python 模拟触屏_python一次简单游戏辅助的经历(截取屏幕模拟键盘)
  14. 集团税务共享化、数字化系统如何选型(一)
  15. “真功夫”与“花拳绣腿”
  16. 电商销量预测方法综述
  17. Android文件系统分析
  18. MySQL初级篇(二)
  19. 开源活动_获得开源薪水,成为社会活动家
  20. javaweb百度云视频分享

热门文章

  1. linux系统 锐捷_Client for RuiJie(锐捷客户端 for linux) 升级版
  2. 有爱无碍,科技为他们点亮漫天星光
  3. 八皇后问题遗传算法c语言,用 遗传算法 解决八皇后问题
  4. 校园卡系统mysql与java结合_基于Java+JSP+Mysq+Servletl的校园卡一卡通管理系统
  5. Qtp10安装过程遇到的问题
  6. 【自动控制原理】 时域分析法
  7. Redhat 7 配置Yum仓库
  8. Java自学视频整理
  9. 抖音python上的代码_抖音代码舞「图文推荐」,python实例代码
  10. 利用R语言的GWmodel进行GWR模型分析(内含错误解决方法)