批处理文件编程

import java.io.IOException; import java.util.Vector; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.event.ResponseEvent; import org.snmp4j.event.ResponseListener; import org.snmp4j.mp.SnmpConstants; import org.snmp4j.smi.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.Integer32; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultUdpTransportMapping;

@SuppressWarnings("unused") public class SNMP4J_Test {

       private Snmp snmp = null;

    private String []amib = null;     private String []ipaddress = null;     private String []amibData = null;   //???        private Address targetAddress = null;        private ResponseListener listener;        private Vector<dnode> dn = new Vector<dnode>();               private void initComm(String ipAddress) throws IOException {         // 设置Agent方的IP和端口         String str1 = "udp:";         String str2 = "/161";         String strTarget = str1+ ipAddress + str2;         targetAddress = GenericAddress.parse(strTarget);          TransportMapping transport = new DefaultUdpTransportMapping();          snmp = new Snmp(transport);          transport.listen();        }

       private void argsParse(String[] argvs) throws IOException        {         if(argvs[0] == null || argvs[1] == null)         {          return;         }         ipaddress = argvs[0].split(",");         amib =  argvs[1].split(",");         return;        }

       public  void javaAMIBGet(String[] argvs) throws IOException        {         argsParse(argvs);     listener = new ResponseListener() { public void onResponse(ResponseEvent event) {

  // Always cancel async request when response has been received   // otherwise a memory leak is created! Not canceling a request   // immediately can be useful when sending a request to a broadcast   // address.  ((Snmp)event.getSource()).cancel(event.getRequest(), this);   for(int index = 0; index < dn.size(); index++) {    if(event.getRequest().getRequestID() == dn.elementAt(index).getRequestId()) {        }

  }     System.out.println("Received response PDU is: "+event.getResponse());     } };         for(int i = 0; i < ipaddress.length; i++) {          getAmibByIp(ipaddress[i]);         }        }

       private void  getAmibByIp(String vl1) throws IOException        {         initComm(vl1);         sendPDU();        }  private void sendPDU() throws IOException {   dnode dn = new dnode();   int []a = null;   //a = strToInt(strOID);   CommunityTarget target = new CommunityTarget();   target.setCommunity(new OctetString("public"));   target.setAddress(targetAddress);   // 通信不成功时的重试次数   target.setRetries(2);   // 超时时间   target.setTimeout(1500);   target.setVersion(SnmpConstants.version1);   // 创建 PDU   PDU pdu = new PDU();   for(int i = 0; i < amib.length; i++) {    a = strToInt(amib[i]);    pdu.add(new VariableBinding(new OID(a)));   }   pdu.setType(PDU.GET);   dn.setRequestId(pdu.getRequestID());   dn.setRequestAddress(target.toString());   this.dn.add(dn);   snmp.send(pdu, target, null, listener);  }  int[] strToInt(String strData) throws IOException {   amibData = strData.split("\\.");   int []n = new int[this.amibData.length];   for(int i = 0; i < n.length; i++) {    n[i] = Integer.parseInt(this.amibData[i]);   }   //return ;   return n;

 }

 public static void main(String[] args) {   try {    SNMP4J_Test util = new SNMP4J_Test();     util.javaAMIBGet(args);    } catch (IOException e) {     e.printStackTrace();    }   }

 public String [] getAmibData() {   return amibData;  }

 public void setAmibData(String [] amibData) {   this.amibData = amibData;  } }

class dnode{  private Integer32 requestId;  private String requestAddress;  private String[] requestOID;  private String[] requestAmibData;

 public void setRequestAmibData(String[] requestAmibData) {   this.requestAmibData = requestAmibData;  }  public String[] getRequestAmibData() {   return requestAmibData;  }  public Integer32 getRequestId() {   return requestId;  }  public void setRequestId(Integer32 requestId) {   this.requestId = requestId;  }  public String getRequestAddress() {   return requestAddress;  }  public void setRequestAddress(String requestAddress) {   this.requestAddress = requestAddress;  }  public String[] getRequestOID() {   return requestOID;  }  public void setRequestOID(String[] requestOID) {   this.requestOID = requestOID;  } } //respEvnt.getResponse().getRequestID() == pdu.getRequestID()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
批处理的语句及用法 例 .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从 更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由 专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全 不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 ==== 注 =================== 批 处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应 用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其 次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来 循环执行一条命令。当然,批处理文件编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== 注 ================== 批 处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的 exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 ===========================

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值