~

发布新日志

  • AdventNet

    2007-10-11 21:50:51

    一直都想尝试用AdventNet提供的SNMP开发包来学习SNMP开发,早在两个星期前就从http://www.adventnet.com.cn/products/snmpapi/snmpapi.html上面将开发包和help文档放到了俺的D盘下,可一直到现在才开始使用,虽然有工作上的原因,但绝对也和自己一贯的懒散有关系。知识在于积累,从今天开始,记录一些学习过程中的总结:

    1 如果仅仅做一些SNMP消息处理,就只需要加载AdventNetLogging.jar和AdventNetSnmp.jar这两个jar包。而且必须使用JDK1.4编译

    3 在使用setObjectID的时候,如果输入完整OID,则必须在OID的前面加个".",这样才能被认为是绝对OID。否则该方法会此OID是相对OID,会自动在OID的前面加上"1.3.6.1.2.1.",就会导致发送异常OID

  • JPL

    2007-09-06 09:42:43

    1 frame与panel

    frame是带标题和边框的最顶层窗体,其默认的布局管理器是BorderLayout

    panel是最简单的容器类,应用程序可以把其它组件放在panel提供的空间内,包括其它panel。panel默认的布局管理器是FlowLayout

    2 getContentPane()方法的使用

    在老的J2SE版本中,不能直接向top level容器中添加component,这些top level容器包括:JFrame,JDialog,JWindow,JApplet,InternalFrame,这种情况下需要使用getContentPane()获取这些容器的面板,然后通过这个面板加入component和设置布局。但在J2SE5.0中,这些top level继承了add,setLayout等方法,可是实现直接加入component和设置布局。

    3 若干个概念

    JDK:Java Development Kit,是开发JAVA最重要的工具,主要包括开发所需要的调试,编译,运行等软件工具

    JRE: Java Runtime Environment, 包括JAVA虚拟机,一些核心类和相关支持文件,是JDK的一部分(Runtime部分)

    Servlet: Java编写的小程序,servlet可以被web服务器加载,执行。这个就如同applet被浏览器加载,执行一样

    J2SE:

    J2EE:

    J2ME:

    JSDK:

    Java中的概念真多,感觉还有点杂,希望过一段时间能真正理解这些东西,come on...

  • tips about winsnmp

    2007-08-31 14:35:47

    1 在利用winsnmp做snmp开发的时候,通过SnmpSetTranslateMode设置通信的传输模式,其中传输模式有三种类型:

    SNMPAPI_TRANSLATED         不常用
    SNMPAPI_UNTRANSLATED_V1    版本V1
    SNMPAPI_UNTRANSLATED_V2    版本V2

    要注意的是,如果我们需要使用getbulk操作,就必须选择SNMPAPI_UNTRANSLATED_V2

  • tips about libsmi

    2007-08-28 15:47:01

    1 在熟悉smi_node中的method时,遇到大部分method不能正常使用,语法完全没有问题,但总也找不到原因,遇到这种情况真的很郁闷(曾不只一次的怀疑是不是编译出来的lib有问题!!)\\!!最后才发现,原来是自己load mib file的顺序有问题。libsmi不能自动对load进来的mib进行排序,所以在程序中按先后顺序load需要的mib file,这样才能正常使用这些method

  • compile libsmi

    2007-08-14 22:07:34

    libsmi开发包可以用作SNMP开发,最近需要在windows平台编译出libsmi的lib。资料提示通过NMAKE来编译,但总是会报错,加上对makefile不是很了解,所以一直没有成功。无奈之下试试直接在IDE中编译,没有想到竟然成功了,很是高兴,具体步骤如下:

    1. 从http://www.ibr.cs.tu-bs.de/projects/libsmi/download.html?lang=de上download libsmi-0.4.5的源码包。解压后会看到lib,win等子目录和文件。lib里面放的是源文件及头文件,win下面放的是用来在windows下编译的源文件和头文件。

    2. 在VC6.0中新建“Win32 Static Library”工程,然后添加所需要的源文件。分为三个步骤:

    (1)添加lib和win目录下的源文件

    (2)创建unistd.h头文件,文件内容如下:

    #ifndef _UNISTD_H
    #define _UNISTD_H

    #include <io.h>
    #include <process.h>

    #endif /* _UNISTD_H */ 

    并将unistd.h放到lib目录下(unistd.h是linux中的头文件,在windows下不存在,所以要自己创建)

    (3)添加lib和win目录下的头文件

    3. 设置VC6.0的编译环境,具体步骤如下:

    (1) project->settings->c/c++, category选择Code Generation,use-runtime library选择Multithreaded DLL

    (2) tools->options->directories, 在include files中添加lib和win两个目录的路径

    4. Build

    5. 虽然会出现warnning,但不影响编译结果。在VC工程中做一些设置就可以是用libsmi提供的方法来做开发了。具体设置如下:

    (1) project->settings->link,在object/library modules下面添加上面编译出来的.lib文件

    (2) 在tools->options->directories->include files中添加添加smi.h所在的目录,或者直接把smi.h添加到系统的头文件目录中

    (3) 在tools->options->directories->Library files中添加编译出来的.lib文件所在的目录,或者直接把该.lib文件添加到系统的lib文件目录中

    (4) project->settings->c/c++, category选择Code Generation,use-runtime library选择Multithreaded DLL(不然在link的过程中会出现很多“MSVCRT.lib(MSVCRT.dll) : error LNK2005”的错误,这是因为DLL和LIB被同时引用造成的)

    (5) 然后在我们的程序中#include<smi.h>,就可以开始做SNMP的开发了,GO!

  • 编程小知识

    2007-04-26 14:31:06

    (1) 写文件时的回车换行问题
    在写文件时,为了另起一行显示,必须在当前行结尾输入"\r\n", "\r"代表回车,"\n"表示换行,文本编辑软件规定遇到回车加换行才会另起一行显示
     
    (2) 绝对路径在程序中的表达
    在VC中,如果将一个路径做为字符串参数,则需要将单斜杠变为双斜杠,这样才能在执行过程形成正确的路径信息,这种表达方式下,前面的单斜杠表示转义。但也可以通过使用反斜杠来代替双斜杠。如下:
    "c:\\program files\\Common Files"可以写成"c:/program files/Common Files"
Open Toolbar