⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set_one.java

📁 无线网络管理
💻 JAVA
字号:
// NAME//      $RCSfile: set_one.java,v $// DESCRIPTION//      [given below in javadoc format]// DELTA//      $Revision: 1.8 $// CREATED//      $Date: 2006/11/30 17:44:55 $// COPYRIGHT//      Westhawk Ltd// TO DO///* * Copyright (C) 2000 - 2006 by Westhawk Ltd * * Permission to use, copy, modify, and distribute this software * for any purpose and without fee is hereby granted, provided * that the above copyright notices appear in all copies and that * both the copyright notice and this permission notice appear in * supporting documentation. * This software is provided "as is" without express or implied * warranty. * author <a href="mailto:snmp@westhawk.co.uk">Tim Panton</a> */package uk.co.westhawk.examplev3;import uk.co.westhawk.snmp.stack.*;import uk.co.westhawk.snmp.pdu.*;import uk.co.westhawk.snmp.util.*;import java.awt.*; import javax.swing.*;import java.util.*;import java.awt.event.*;/** * <p> * The set_one application will display the parameters, as configured in the * properties file. It will retrieve the specified MIB variable.  * </p> * * <p> * The name of the properties file can be passed as first argument to * this application. If there is no such argument, it will look for * <code>set_one.properties</code>. If this file does not exist, the * application will use default parameters. * </p> * * <p> * The user can set the required OID and perform a Get or GetNext * request.  * </p> * * <p> * The user can also set a MIB variable by performing a Set request. * By default the value is set as a String type (using AsnOctets), * unless the value is a number (AsnInteger will then be used).  * </p> * * @see uk.co.westhawk.snmp.stack.SnmpContextv3Pool * @see propertyDialog2 * * @author <a href="mailto:snmp@westhawk.co.uk">Birgit Arkesteijn</a> * @version $Revision: 1.8 $ $Date: 2006/11/30 17:44:55 $ */public class set_one extends JComponent implements MouseListener, ActionListener, Observer, WindowListener{    private static final String     version_id =        "@(#)$Id: set_one.java,v 1.8 2006/11/30 17:44:55 birgit Exp $ Copyright Westhawk Ltd";    public final static String sysContact = "1.3.6.1.2.1.1.4.0";    private GridBagLayout gridBagLayout1 = new GridBagLayout();    private GridLayout gridLayout1 = new GridLayout();    private JPanel buttonPanel = new JPanel();    private JLabel oidLabel = new JLabel();    private JLabel valueLabel = new JLabel();    private JLabel messageLabel = new JLabel();    private JTextField oidText = new JTextField();    private JTextField valueText = new JTextField();    private JButton setButton = new JButton();    private JButton getNextButton = new JButton();    private JButton getButton = new JButton();    private propertyDialog2 propDialog;    private JFrame myFrame;    private SnmpContextv3Pool context;    private Pdu pdu;    private boolean     pduInFlight;    private Util        util;/** * Constructor. * * @param propertiesFilename The name of the properties file. Can be * null. */public set_one(String propertiesFilename){    util = new Util(propertiesFilename, this.getClass().getName());    try    {        // AsnObject.setDebug(15);        AsnObject.setDebug(1);        pduInFlight = false;        jbInit();    }    catch(Exception exc)    {        exc.printStackTrace();        setErrorMessage("Exception: " + exc.getMessage());    }}public void init(){    createPropertyDialog();    propDialog.setVisible(true);    propDialog.toFront();    String oid = util.getOid(sysContact);    oidText.setText(oid);    createContext();    //sendGetRequest(oidText.getText());}private void jbInit() throws Exception{    oidLabel.setText("OID:");    this.setLayout(gridBagLayout1);    valueLabel.setText("Value:");    oidText.setColumns(15);    valueText.setColumns(15);    buttonPanel.setLayout(gridLayout1);    gridLayout1.setColumns(3);    setButton.setText("Set");    setButton.addActionListener(this);    getNextButton.setText("GetNext");    getNextButton.addActionListener(this);    getButton.setText("Get");    getButton.addActionListener(this);    messageLabel.setText(" ");    messageLabel.setBackground(Color.white);    messageLabel.setOpaque(true);    this.addMouseListener(this);    this.add(oidLabel, propertyDialog2.getGridBagConstraints2(0, 0, 1, 1, 0.0, 0.0            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,             new Insets(5, 5, 5, 5), 0, 0));    this.add(valueLabel, propertyDialog2.getGridBagConstraints2(0, 1, 1, 1, 0.0, 0.0            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,             new Insets(5, 5, 5, 5), 0, 0));    this.add(oidText, propertyDialog2.getGridBagConstraints2(1, 0, 1, 1, 1.0, 0.0            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,             new Insets(0, 0, 0, 0), 0, 0));    this.add(valueText, propertyDialog2.getGridBagConstraints2(1, 1, 1, 1, 1.0, 0.0            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,             new Insets(0, 0, 0, 0), 0, 0));    this.add(buttonPanel, propertyDialog2.getGridBagConstraints2(0, 2, 2, 1, 1.0, 0.0            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,             new Insets(5, 5, 5, 5), 0, 0));    buttonPanel.add(setButton, null);    buttonPanel.add(getButton, null);    buttonPanel.add(getNextButton, null);    this.add(messageLabel, propertyDialog2.getGridBagConstraints2(0, 3, 2, 1, 1.0, 0.0            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,             new Insets(0, 0, 0, 0), 0, 0));}/** * Creates a new Pdu and send a request. */public void actionPerformed(ActionEvent evt){    Object src = evt.getSource();    try    {        if (src == propDialog)        {            propDialog_actionPerformed(evt);        }        else if (context != null)        {            String oid = oidText.getText();            if (src == getButton)            {                System.out.println("Get " + oid);                pdu = new GetPdu(context);                pdu.addOid(oid);            }            else if (src == getNextButton)            {                System.out.println("GetNext " + oid);                pdu = new GetNextPdu(context);                pdu.addOid(oid);            }            else if (src == setButton)            {                SetPdu setPdu = new SetPdu(context);                String value = valueText.getText();                AsnObject obj;                System.out.println("Set " + oid + "=" + value);                if (Util.isNumber(value))                {                    obj = new AsnInteger(Util.getNumber(value));                }                else                {                    obj = new AsnOctets(value);                }                setPdu.addOid(oid, obj);                pdu = setPdu;            }            sendRequest(pdu);        }        // context.dumpContexts("Dump 1:");    }    catch (Exception exc)    {        if (context != null)        {            // context.dumpContexts("Dump 1:");        }        exc.printStackTrace();        setErrorMessage("Exception: " + exc.getMessage());    }}void propDialog_actionPerformed(ActionEvent evt){    String cmd = evt.getActionCommand();    if (cmd.equals("Cancel") == false)    {        createContext();        if (context != null)        {            sendGetRequest(oidText.getText());        }    }    else    {        //System.exit(0);    }}public void mouseClicked(MouseEvent evt){}public void mouseEntered(MouseEvent evt){}public void mouseExited(MouseEvent evt){}public void mousePressed(MouseEvent evt){    mouseEvt(evt);}public void mouseReleased(MouseEvent evt){    mouseEvt(evt);}/** * Will popup the property dialog if the popup menu button was * triggered. */public void mouseEvt(MouseEvent evt){    if (evt.isPopupTrigger())    {        propDialog.setVisible(true);        propDialog.toFront();        evt.consume();    }}public void setErrorMessage(String message){    setMessage(message, true);}public void setMessage(String message){    setMessage(message, false);}public void setMessage(String message, boolean isError){    messageLabel.setText(message);    Color c = Color.white;    if (isError)    {        c = Color.red;    }    messageLabel.setBackground(c);}private void createPropertyDialog(){    myFrame = getFrame(this);    propDialog = new propertyDialog2(myFrame, util);    propDialog.addActionListener(this);    propDialog.pack();}public static JFrame getFrame(Component c){    if(c instanceof JFrame)        return (JFrame)c;     while((c = c.getParent()) != null)    {        if(c instanceof JFrame)            return (JFrame)c;    }    return null;}private void createContext(){    String host = propDialog.getHost();    String portStr = propDialog.getPort();    int port = SnmpContextBasisFace.DEFAULT_PORT;    try    {        port = Integer.valueOf(portStr).intValue();    }    catch (NumberFormatException exc) { }    String socketType = propDialog.getSocketType();    String bindAddr = propDialog.getBindAddress();    byte [] contextEngineId = propDialog.getContextEngineId();    String contextName = propDialog.getContextName();    String userName = propDialog.getUserName();    boolean useAuthentication = propDialog.isAuthentication();    String userAuthPassw = propDialog.getUserAuthPassw();    int protocol = propDialog.getProtocol();    boolean usePrivacy = propDialog.isPrivacy();    String userPrivPassw = propDialog.getUserPrivPassw();    myFrame.setTitle("One Set Operation - " + host);    if (context != null)    {        context.destroy();    }    try    {        context = new SnmpContextv3Pool(host, port, bindAddr, socketType);        context.setContextEngineId(contextEngineId);        context.setContextName(contextName);        context.setUserName(userName);        context.setUseAuthentication(useAuthentication);        context.setUserAuthenticationPassword(userAuthPassw);        context.setAuthenticationProtocol(protocol);        context.setUsePrivacy(usePrivacy);        context.setUserPrivacyPassword(userPrivPassw);        // context.dumpContexts("Dump 2:");    }    catch (java.io.IOException exc)    {        if (context != null)        {            // context.dumpContexts("Dump 2:");        }        exc.printStackTrace();        setErrorMessage("IOException: " + exc.getMessage());        context = null;    }}private void sendGetRequest(String oid){    System.out.println("Get " + oid);    pdu = new GetPdu(context);    pdu.addOid(oid);    sendRequest(pdu);}private void sendRequest(Pdu pdu){    boolean hadError = false;    setButton.setEnabled(false);    getButton.setEnabled(false);    getNextButton.setEnabled(false);    try    {        if (!pduInFlight)        {            pduInFlight = true;            setMessage("Sending request ..: ");            valueText.setText("");            pdu.addObserver(this);            pdu.send();        }        else        {            setErrorMessage("Pdu still in flight");        }    }    catch (PduException exc)    {        if (context != null)        {            // context.dumpContexts("Dump 3:");        }        exc.printStackTrace();        setErrorMessage("PduException: " + exc.getMessage());        hadError = true;    }    catch (java.io.IOException exc)    {        if (context != null)        {            // context.dumpContexts("Dump 4:");        }        exc.printStackTrace();        setErrorMessage("IOException: " + exc.getMessage());        hadError = true;    }    catch (Exception exc)    {        if (context != null)        {            // context.dumpContexts("Dump 5:");        }        exc.printStackTrace();        setErrorMessage("Exception: " + exc.getMessage());        hadError = true;    }    if (hadError == true)    {        pduInFlight = false;        setButton.setEnabled(true);        getButton.setEnabled(true);        getNextButton.setEnabled(true);    }}public void update(Observable obs, Object ov){    pduInFlight = false;    setMessage("Received answer");    if (pdu.getErrorStatus() != AsnObject.SNMP_ERR_NOERROR)    {        setErrorMessage(pdu.getErrorStatusString());    }    else    {        try        {            varbind[] vars = pdu.getResponseVarbinds();            if (vars != null)            {                varbind var = vars[0];                if (var != null)                {                    AsnObjectId oid = var.getOid();                    oidText.setText(Util.printOid(var.getOid()));                    AsnObject obj = var.getValue();                    valueText.setText(obj.toString());                }            }        }        catch(uk.co.westhawk.snmp.stack.PduException exc)        {            System.out.println("update(): PduException "                   + exc.getMessage());            // context.dumpContexts("Dump 6:");        }    }    setButton.setEnabled(true);    getButton.setEnabled(true);    getNextButton.setEnabled(true);}public void windowActivated(WindowEvent evt) { }public void windowDeactivated(WindowEvent evt) { }public void windowClosed(WindowEvent evt) { }public void windowIconified(WindowEvent evt) { }public void windowDeiconified(WindowEvent evt) { }public void windowOpened(WindowEvent evt) { }public void windowClosing(WindowEvent evt){    // context.dumpContexts("Dump 7:");    System.exit(0);}public static void main(String[] args){    String propFileName = null;    if (args.length > 0)    {        propFileName = args[0];    }    set_one application = new set_one(propFileName);    JFrame frame = new JFrame();    frame.setTitle(application.getClass().getName());    frame.getContentPane().add(application, BorderLayout.CENTER);    frame.addWindowListener(application);    frame.setBounds(50, 50, 500, 150);    frame.pack();    frame.setVisible(true);        application.init();}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -