代码部分来自于互联网
- /** *//**
- * 测试snmp4j 中trap的接收方法.这里只测试了v1和v2的trap.
- * trap接收原理:snmp实例在注册了实现CommandResponder的listener之后,可以通过异步调用的方法
- * 将收到内容输出.
- * listen()启动监听线程,该线程中的操作是监听指定端口,在收到trap告警之后将调用
- * listener.processPdu(CommandResponderEvent event)方法,由processPdu来处理trap信息.
- */
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import org.snmp4j.CommandResponder;
- import org.snmp4j.CommandResponderEvent;
- import org.snmp4j.PDU;
- import org.snmp4j.Snmp;
- import org.snmp4j.TransportMapping;
- import org.snmp4j.smi.UdpAddress;
- import org.snmp4j.transport.DefaultUdpTransportMapping;
- import org.jsmsengine.*;
- public class TrapTest{
- public static void main(String[] args){
- try{
- //snmp4j通过transportmapping的监听端口接收SNMP信息,所以这里初始化一个
- //transportmapping,
- //注明本机的IP地址及接收trap的端口.
- TransportMapping transport = new DefaultUdpTransportMapping(new UdpAddress("192.168.10.2/162"));
- //创建一个处理消息的snmp实例
- Snmp snmp = new Snmp(transport);
- //CommandResponder是一个listener,用以处理获取的trap消息
- CommandResponder trapPrinter = new CommandResponder(){
- public synchronized void processPdu(CommandResponderEvent e){
- PDU command = e.getPDU();
- if(command!=null){
- //这里示例输出trap的内容.具体的trap解析等工作在这里进行.
- System.out.println(command.toString());
- sendmesg(command.toString());
- try{
- DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
- try{
- Class.forName("oracle.jdbc.driver.OracleDriver");
- }catch(Exception e3){
- System.out.println("No Driver!");
- }
- String url = "jdbc:oracle:thin:@local:1521:date";
- String userName = "user;
- String password = "pass";
- Connection conn =DriverManager.getConnection (url, userName, password);
- // Create a Statement
- Statement stmt = conn.createStatement ();
- // Select the ENAME column from the EMP table
- }catch(Exception e2)
- {
- System.out.println(e2);
- }
- }
- }
- };
- //在snmp实例中添加CommandResponder listener
- snmp.addCommandResponder(trapPrinter);
- System.out.println("start listening!");
- //开始启动trap监听.listen()方法内部启动了一个线程,这个线程监听发送到transport中定义的端口
- //的消息.
- transport.listen();
- System.out.println(transport.isListening());//测试监听是否正常
- //等待一段测试时间,在这段时间可以发送trap信息测试.
- Thread.sleep(180000);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void sendmesg(String meesage)
- {
- CService srv = new CService("COM3", 9600, "Nokia", "6310i");
- System.out.println();
- System.out.println("SendMessage(): sample application.");
- System.out.println(" Using " + srv._name + " " + srv._version);
- System.out.println();
- try
- {
- srv.setSimPin("0000");
- srv.connect();
- srv.setSmscNumber("");
- System.out.println("Mobile Device Information: ");
- System.out.println(" Manufacturer : " + srv.getDeviceInfo().getManufacturer());
- System.out.println(" Model : " + srv.getDeviceInfo().getModel());
- System.out.println(" Serial No : " + srv.getDeviceInfo().getSerialNo());
- System.out.println(" IMSI : " + srv.getDeviceInfo().getImsi());
- System.out.println(" S/W Version : " + srv.getDeviceInfo().getSwVersion());
- System.out.println(" Battery Level : " + srv.getDeviceInfo().getBatteryLevel() + "%");
- System.out.println(" Signal Level : " + srv.getDeviceInfo().getSignalLevel() + "%");
- try{
- DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
- try{
- Class.forName("oracle.jdbc.driver.OracleDriver");
- }catch(Exception e){
- System.out.println("No Driver!");
- }
- String url = "jdbc:oracle:thin:@loacl:1521:data";
- String userName = "user";
- String password = "pass";
- Connection conn =DriverManager.getConnection (url, userName, password);
- // Create a Statement
- Statement stmt = conn.createStatement ();
- // Select the ENAME column from the EMP table
- ResultSet rset = stmt.executeQuery ("select * from WARNING");
- // Iterate through the result and print the employee names
- String number=null;
- while(rset.next())
- {
- number=rset.getString("WARTEL");
- COutgoingMessage msg = new COutgoingMessage(number,meesage");
- msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_7BIT);
- msg.setSourcePort(15000);
- msg.setDestinationPort(16000);
- srv.sendMessage(msg);
- srv.disconnect();
- }
- rset.clearWarnings();
- rset.close();
- stmt.clearWarnings();
- stmt.close();
- conn.clearWarnings();
- conn.close();
- }catch(Exception e2)
- {
- System.out.println(e2);
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- System.exit(0);
- }
- }