📄 fwclientthread.java~21~
字号:
package fwserver;
import java.net.Socket;
import java.io.File;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.Vector;
import java.io.OutputStreamWriter;
import java.io.FileReader;
import java.net.ServerSocket;
import java.util.Date;
import java.text.SimpleDateFormat;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class fwClientThread extends Thread {
private long length_now = 0;
private long length_last = 0;
private String IP = "127.0.0.1";
public Vector RuleVec = new Vector();
private boolean suspendFlag = false;
public fwClientThread() {
System.err.println("Client Thread Start ");
suspendFlag = true;
start();
}
public void run() {
int Index = 0;
String strRule = null;
String strAction = "Reject";
String strIP_port = " ";
String name = "Default";
String strwhenSet = " ";
String strwhenExpire = " ";
String precedence = "2000";
String strwhoSet = "unknown";
while (suspendFlag) {
try {
// File reporttxt = new File(
// "/G:/私人文件/diploma design/FwServer/FwServer",
// "report.txt");
File reporttxt = new File("/D:","report.txt");
if (!reporttxt.exists()) {
if (reporttxt.createNewFile()) {
System.err.println("Create OK");
}
}
ServerSocket sockets = new ServerSocket(80);
System.out.println("Listening Report");
Socket ReportSock = sockets.accept();
sockets.close();
InputStreamReader input = new InputStreamReader(ReportSock.
getInputStream());
BufferedReader bufreaderin = new BufferedReader(input);
StringBuffer bufferServerStr = new StringBuffer();
String sss = bufreaderin.readLine();
while (sss != null) {
bufferServerStr.append(sss + "\r\n");
sss = bufreaderin.readLine();
}
FileWriter fout = new FileWriter("report.txt");
fout.write(bufferServerStr.toString());
input.close();
fout.close();
ReportSock.close();
//bufferServerStr.delete(0, bufferServerStr.length());
} catch (Exception dd) {
System.err.println("Get Report Server Error" + dd);
}
try {
File file = new File("report.txt");
length_now = file.length();
FileReader filereader = new FileReader("report.txt");
BufferedReader filebuffer = new BufferedReader(filereader);
if (length_last != 0) {
filebuffer.skip(length_last + 4);
}
System.err.println("length_last1 = " + length_last);
length_last = length_now;
System.err.println("length_last2 = " + length_last);
Index = 0;
RuleVec.clear();
String strLinetxt = filebuffer.readLine();
Index = Index + 1;
while (strLinetxt != null) {
if (Index == 11) {
Index = 0;
}
if (Index == 3) {
int FirstblankIndex = strLinetxt.indexOf(" ");
int flagIndex = strLinetxt.indexOf("->");
String targetIP = strLinetxt.substring(flagIndex + 2,
strLinetxt.length());
strIP_port = strLinetxt.substring(FirstblankIndex,
flagIndex - 1);
///////////////////////////////////
Date dtCurrTime = new Date();
//格式化日志时间
SimpleDateFormat syOutput = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String strStartTime = syOutput.format(dtCurrTime);
strwhenSet = strStartTime;
strwhenExpire ="PERPETUAL";
strRule = "[MANUAL UDP low REJECT]\r\n" + strAction +
", " + strIP_port + ", " + name +
", " + strwhenSet + ", " + strwhenExpire +
", " +
precedence + ", " + strwhoSet + "\r\n";
RuleVec.add(strRule);
IP = targetIP.trim();
try {
sleep(200);
Socket socket12 = new Socket(IP, 1234);
String temp;
String strinfo;
String temprule;
int number = 0;
number = RuleVec.size();
String strnumber = String.valueOf(number);
strnumber = strnumber + "\r\n";
Vector strvec = new Vector();
strvec.add(strnumber);
for (int i = 0; i < number; i++) {
temprule = (String) RuleVec.elementAt(i);
strvec.add(temprule);
}
temp = strvec.toString();
strinfo = temp.substring(1, temp.length() - 1);
OutputStreamWriter ps = new OutputStreamWriter(
socket12.
getOutputStream());
ps.write(strinfo);
ps.flush();
RuleVec.clear();
strvec.clear();
} catch (Exception ee) {
System.err.print("ssdsd" + ee);
}
}
strLinetxt = filebuffer.readLine();
Index = Index + 1;
}
} catch (Exception e) {
System.err.println("Error " + e);
}
System.err.println("Task!!!");
}
}
public void mysuspend() {
suspendFlag = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -