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

📄 blackfilefilterserver.java

📁 短信开发用于文件交换处理转发的类模块
💻 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 + -