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

📄 serverrecorder.java

📁 用java实现的一个bbs的portal
💻 JAVA
字号:
/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: Jul 19, 2003
 * Time: 10:06:58 PM
 * To change this template use Options | File Templates.
 */
package ConnectAdapter;

import Kernel.TradeInfo;

import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Vector;
import java.util.StringTokenizer;


public class ServerRecorder extends Thread{

    private static  Hashtable clientSocket = new Hashtable();
    private static int clientOnlineNum = 0;
    public static Vector activeClient = new Vector();
    private TradeInfo tradeInfo = new TradeInfo();


    public ServerRecorder(){
    }

    public void refreshQueryCache(){
        for (Enumeration e = TradeInfo.QueryCache.keys();e.hasMoreElements();){
            String keystr = (String)e.nextElement();
            Vector oldvec = (Vector)TradeInfo.QueryCache.get(keystr);
            String postdate = (String)TradeInfo.QueryLastDate.get(keystr);
            StringTokenizer st = new StringTokenizer(keystr,"_");
            if (st.hasMoreTokens()){
                String tradetype = st.nextToken();
                String kind = st.nextToken();
                String commodity = st.nextToken();
                String keywords = st.nextToken();
                tradeInfo.getRecentTradeInfo(tradetype,kind,commodity,keywords,postdate,oldvec);
            }else continue;
        }
    }

    public void run(){
        while (true){
            try{
                Thread.sleep(280000); //5 minutes
            }catch(Exception ex){
                ex.printStackTrace();
            }
            refreshQueryCache();
            System.out.println("I am recorder and refresh query cache !");
        }

        /*
        while (true){
            try{
                Thread.sleep(300000); //5 minutes
                System.out.println("I am recorder !");
                activeClient.clear();
                for (Enumeration e = clientSocket.keys();e.hasMoreElements();){
                    String clientid= (String)e.nextElement();
                    ((Clienter)clientSocket.get(clientid)).sendMessage("AREYOUHERE","");
                }
                Thread.sleep(60000); //1 minutes
                for (Enumeration e = clientSocket.keys();e.hasMoreElements();){
                    String clientid= (String)e.nextElement();
                    boolean isActive = false;
                    for (Enumeration ee = activeClient.elements();ee.hasMoreElements();){
                        String activeid = (String)ee.nextElement();
                        if (activeid.equals(clientid)){
                            isActive = true;
                            break;
                        }
                    }
                    if (!isActive){
                        //((Clienter)clientSocket.get(clientid)).connectionClose();
                        short nowActiveState = ((Clienter)clientSocket.get(clientid)).subActiveState();
                        if (nowActiveState == 0) {
                            ((Clienter)clientSocket.get(clientid)).connectionClose();
                            System.out.println("Recorder remove "+clientid+" !");
                        } else System.out.println("Sub ActiveState at "+clientid+" !");
                    }else{
                         short nowActiveState = ((Clienter)clientSocket.get(clientid)).addActiveState();
                        System.out.println("now on line ; "+clientid+" of "+nowActiveState+" Active State !");
                    }
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
        */
    }

    public static void addClienter(Clienter client){
        clientSocket.put(client.getClientID(),client);
        clientOnlineNum++;
    }

    public static void removeClienter(String ClientID){
        clientSocket.remove(ClientID);
        clientOnlineNum--;
    }

    public static Hashtable getClientSocket() {
        return clientSocket;
    }

    public static int getClientOnlineNum() {
        return clientOnlineNum;
    }

    public static void Broadcast(String message){
        for (Enumeration e = clientSocket.keys();e.hasMoreElements();){
            String clientid= (String)e.nextElement();
            ((Clienter)clientSocket.get(clientid)).sendMessage("SYSTEMINFO",message);
        }
    }

    public static void sendTo(){

    }

    public static void BroadExit(){
        for (Enumeration e = clientSocket.keys();e.hasMoreElements();){
            String clientid= (String)e.nextElement();
            ((Clienter)clientSocket.get(clientid)).sendMessage("EXIT","");
            ((Clienter)clientSocket.get(clientid)).connectionClose();
        }
    }
}

⌨️ 快捷键说明

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