📄 blackfilefilterserver.java
字号:
package com.pub.backserver;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.log4j.*;
import com.pub.backserver.blackList.BlackDatabase;
import com.pub.backserver.blackList.BlackEntity;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
public class BlackFileFilterServer {
private static Logger log = Logger.getLogger(BlackFileFilterServer.class);
GZIPOutputStream out;
BlackEntity be = new BlackEntity();
BlackDatabase blackBDB;
int port;
int bufferSize;
public BlackFileFilterServer(BlackDatabase blackBDB, int port,
int bufferSize) {
this.blackBDB = blackBDB;
this.port = port;
this.bufferSize = bufferSize;
}
public BlackFileFilterServer() {}
public void start() throws Exception {
int ret = 0;
byte[] tmpdata = new byte[bufferSize];
log.debug("BlackFileFilterServer Start in " + port + " .......");
ServerSocket s = new ServerSocket(port);
while (true) {
try {
Socket client = s.accept();
int numbers = 0;
client.setSoTimeout(100000000);
long times = System.currentTimeMillis();
GZIPInputStream in = new GZIPInputStream(new
BufferedInputStream(client.getInputStream()));
GZIPOutputStream out = new GZIPOutputStream(new
BufferedOutputStream(client.getOutputStream()));
int j = 0;
byte temp[] = new byte[12];
do {
ret = in.read(tmpdata);
if (ret == -1)
break;
for (int i = 0; i < ret; i++) {
if (tmpdata[i] == 13) {
formatPhone(out, temp);
numbers = numbers + 1;
temp = new byte[12];
j = 0;
} else {
if (tmpdata[i] != 10) {
temp[j] = tmpdata[i];
j++;
}
}
}
out.flush();
} while (true);
out.finish();
out.flush();
in.close();
out.close();
log.debug("deal phone = " + numbers + " useTime = " +
(System.currentTimeMillis() - times));
} catch (Exception e) {
log.error(null, e);
}
}
}
public void formatPhone(GZIPOutputStream out, byte[] phone) {
String result = new String(phone).trim();
if (result.length() > 9) {
be.setPhone(result);
int ret = blackBDB.Query(be);
if (ret == -3) {
try {
out.write(result.getBytes());
out.write((byte) 13);
out.write((byte) 10);
} catch (IOException ex) {
log.error(null, ex);
}
} else {
}
}
}
public static void main(String args[]) {
BlackFileFilterServer bffs = new BlackFileFilterServer();
try {
bffs.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -