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

📄 udpreceive.java~1~

📁 这是一个udp接收程序
💻 JAVA~1~
字号:
package zjkdata;

import java.io.*;
import java.lang.*;
import java.net.*;
import java.sql.*;
import java.lang.String;
import java.util.StringTokenizer;

import com.adventnet.snmp.snmp2.*;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

import java.util.*;


/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class UdpReceive extends Thread {
  private volatile boolean runFlag;
  private Thread runThread;
  private String TrapPort,TrapIp1,TrapIp2;
  private int UdpPort;
  private volatile DatagramSocket dataSocket;
  private DatagramPacket dataPacket;
  private byte revByte[];
  private String revDate;
  private String revDateArray[];

  public void run() {
    runThread = Thread.currentThread();
    runThread.setName("UDPThread");
    runFlag = true;

   //获取udp接收端口参数

    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String DBUrl = "jdbc:odbc:datalink";
      Connection Conn = DriverManager.getConnection(DBUrl);
      Statement Stmt = Conn.createStatement();
      ResultSet rsSQLSelect = Stmt.executeQuery("Select * from parameter");
      if (rsSQLSelect.next())
      {
        UdpPort = Integer.parseInt(rsSQLSelect.getString("udpport"));
        TrapPort = rsSQLSelect.getString("trapport");
        TrapIp1 = rsSQLSelect.getString("trapip1");
        TrapIp2 = rsSQLSelect.getString("trapip2");
       }
    }
    catch (Exception eee) { //数据库读取异常
    }

   try {
     dataSocket = new DatagramSocket(UdpPort);
     revByte = new byte[2000];
     revDateArray = new String[100];
     dataPacket = new DatagramPacket(revByte, revByte.length);
     revDate = "";
     int revtimes = 0;
     while (getFlag()) {
       System.out.println("线程运行次数" + revtimes +":"+ runThread.getName());
       revtimes++;
       dataSocket.receive(dataPacket);
       if (dataPacket.getLength() > 0) {
         revDate = new String(revByte, 0, dataPacket.getLength(),"utf-8");
         int i = 0;
         StringTokenizer revDateDiv = new StringTokenizer(revDate.trim(), "\n", false);
         System.out.println("all is " + revDateDiv.countTokens());
         while (revDateDiv.hasMoreTokens()){
           revDateArray[i] = revDateDiv.nextToken().trim();
      //     System.out.println(revDateArray[i]);
           i++;
         }

         SnmpAPI api = new SnmpAPI();
         api.start();
         System.out.println("aaaaaa");
         api.close();


         //调用Trap发送方法
        // SnmpV1TrapSend snmpv1trapsend = new SnmpV1TrapSend();

       //  try {
        //   snmpv1trapsend.TrapSend(revDateArray,TrapIp1,TrapPort);
       //    snmpv1trapsend.TrapSend(revDateArray,TrapIp2,TrapPort);
       //  }
      //   catch (Exception eee) {
      //   }
       }
     }

     if(!dataSocket.isClosed()){
       dataSocket.close();
     }

   }
   catch (IOException e) {

   }
 }

 public synchronized boolean getFlag() {
   return runFlag;
 }

  public synchronized void stopReceive(){
    runFlag = false;
    if (runThread != null){
      runThread.interrupt();
      if(!dataSocket.isClosed()){
        dataSocket.close();
      }
      System.out.println(runThread.getName() + "线程停止!");
    }

  }
}

⌨️ 快捷键说明

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