📄 udpreceive.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 + -