rmiAppletDemo.java
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:5k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: rmiAppletDemo.src,v 1.3 2002/09/09 05:41:24 tonyjpaul Exp $ */
  2. /*
  3.  * @(#)rmiAppletDemo.java
  4.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more details.
  6.  */
  7. /**
  8.  *  An example of using the RMI interfaces in a remote client Applet.
  9.  *  <p>
  10.  *  This example uses the RMI SnmpPoller interface.
  11.  */
  12. import java.awt.*;
  13. import java.awt.event.ActionListener;
  14. import java.awt.event.ActionEvent;
  15. import java.applet.Applet;
  16. import java.rmi.*;
  17. import com.adventnet.snmp.rmi.*;
  18. import com.adventnet.snmp.beans.DataException;
  19. public class rmiAppletDemo extends Applet implements ActionListener, ResultListener {
  20.     com.adventnet.snmp.rmi.SnmpFactory factory = null;
  21.     com.adventnet.snmp.rmi.SnmpPoller poller = null;    static final int USM_SECURITY_MODEL = 3;
  22.     // Some AWT widgets we'll use
  23.     Label l1;
  24.     Button b1;
  25.     TextField t1;
  26.     /** The init method is first called for applets.  **/
  27.     public void init() {
  28. l1 = new Label ( getParameter("OID") );
  29.         b1 = new Button();
  30.         b1.setLabel("Stop Polling");
  31. t1 = new TextField("The data from the agent is shown here");
  32.         //Listen for actions on button
  33.         b1.addActionListener(this);
  34.         //Add Components using the default FlowLayout.
  35. add(l1);
  36. add(t1);
  37.         add(b1);
  38.     }
  39.     public void stop() {
  40.     try{
  41. poller.stopPolling();
  42. }catch(Exception stopEx){}
  43. super.stop();
  44.     }
  45.     /** The start method is called when page with applet is visited.  **/
  46.     public void start() {
  47. try {  // setup the poller object as desired - use applet parameters
  48.     if(getParameter("RMISERVER") != null)
  49. factory = (com.adventnet.snmp.rmi.SnmpFactory)
  50.     Naming.lookup( "rmi://" + getParameter("RMISERVER") + "/AdventnetSnmpFactory" );
  51.     else
  52. factory = (com.adventnet.snmp.rmi.SnmpFactory)
  53.     Naming.lookup( "rmi:///AdventnetSnmpFactory" );
  54.     // Get a Poller object
  55.     poller = factory.createPoller();
  56.     // load MIB to allow us to use names
  57.     showStatus("Loading MIBs...");  // show something on the status bar
  58.        poller.loadMibs( getParameter("MIBS") );
  59.     showStatus("Loading MIBs done.");
  60.     if( getParameter("HOSTNAME")!=null)
  61.      poller.setTargetHost( getParameter("HOSTNAME") );
  62.     if( getParameter("COMMUNITY")!=null)
  63.     poller.setCommunity( getParameter("COMMUNITY") );
  64.     if(getParameter("SNMP_PORT")!=null)
  65. poller.setTargetPort(Integer.parseInt(getParameter("SNMP_PORT")));
  66. if(getParameter("SNMP_VERSION")!=null)
  67. poller.setSnmpVersion(Integer.parseInt(getParameter("SNMP_VERSION")));
  68. if (getParameter("SNMP_VERSION") != null && getParameter("SNMP_VERSION").equals("3"))
  69. {
  70. poller.setSnmpVersion(Integer.parseInt(getParameter("SNMP_VERSION")));   
  71. poller.setPrincipal( getParameter("USERNAME"));
  72. poller.setAuthPassword( getParameter("AUTHPASS"));
  73. String protocol =  getParameter("AUTHPROTOCOL");
  74. if(protocol!=null) 
  75. {
  76. if(protocol.equals("SHA"))
  77. poller.setAuthProtocol(poller.SHA_AUTH);
  78. else
  79. poller.setAuthProtocol(poller.MD5_AUTH);
  80. }
  81. if (getParameter("CONTEXTID") != null)
  82. poller.setContextID( getParameter("CONTEXTID"));
  83. if (getParameter("CONTEXTNAME") != null)
  84. poller.setContextName( getParameter("CONTEXTNAME"));
  85. if (getParameter("PRIVPASS") != null)
  86. poller.setPrivPassword( getParameter("PRIVPASS"));
  87. //poller.setSecurityLevel((byte)Integer.parseInt(getParameter("SEC_LEVEL"))); // Create the SNMPv3 tables.
  88.   poller.create_v3_tables();
  89. }
  90. poller.setObjectID( getParameter("OID") );
  91. java.rmi.server.UnicastRemoteObject.exportObject(this);
  92. poller.addResultListener(this);  // listen for response events
  93. } catch (Exception ex) {
  94. System.err.println("Error in starting applet: "+ex);
  95. t1.setText("Error: "+ex);  // show something applet
  96. }
  97. }
  98.     /** This method is called when the button is clicked **/
  99.     public void actionPerformed(ActionEvent e) {
  100. try {
  101. if (poller.getPollingStatus()) {  // if polling is going on, stop it
  102. poller.stopPolling();
  103. b1.setLabel("Start Polling");
  104. } else { // else restart it
  105. poller.restartPolling();
  106. b1.setLabel("Stop Polling");
  107. }
  108. } catch (Exception ex) {
  109. System.err.println("Error in starting applet: "+ex);
  110. }
  111.     }
  112.     // This method will be invoked when the response is received
  113.     public void setResult( com.adventnet.snmp.beans.ResultEvent e ) {
  114. try {
  115. t1.setText(e.getStringValue());
  116. } catch (DataException de) {
  117. t1.setText("Error in getting agent data: "+de +
  118. e.getErrorString());
  119. }
  120.     }
  121.     public void setStringResult(String s ) { }
  122.     public void setNumericResult(long i  ) { }
  123.     //public void setNumericResult(double i  ) { }
  124. }