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