📄 baseserver.java
字号:
package chat;
import java.io.*;
import java.util.*;
public class BaseServer
{
public final static String USER_LIST_FILE = "userlist.txt";
public final static String SERVER_LOG = "log.txt";
public final static int HISTORY_LENGTH = 100;
protected Hashtable userList = new Hashtable();
protected Vector clientList = new Vector();
public Vector userServerList = new Vector();
public Vector messageHistory = new Vector();
public BaseServer() throws IOException
{
readUserList();
}
protected void readUserList() throws IOException
{
String userid;
String password;
File f = new File(USER_LIST_FILE);
if (!(f.exists()))
{
return;
}
FileReader fileReader = new FileReader(f);
BufferedReader reader = new BufferedReader(fileReader);
String fileText = reader.readLine();
while (fileText != null)
{
int index = fileText.indexOf(' ');
if (index != -1)
{
userid = fileText.substring(0, index);
password = fileText.substring(index + 1);
userList.put(userid.toLowerCase(), password);
}
fileText = reader.readLine();
}
reader.close();
}
public synchronized boolean isValidUserInfo(String user, String password)
{
String actualPassword = (String) (userList.get(user.toLowerCase()));
return ((actualPassword != null) && actualPassword.equalsIgnoreCase(password));
}
public synchronized void addClient(ChatClient client)
{
clientList.addElement(client);
}
public synchronized void removeClient(ChatClient client)
{
clientList.removeElement(client);
}
public String[] getUser()
{
int count = userServerList.size();
String[] users = new String[count];
for (int i = 0; i < count; i++)
{
users[i] = (String) (userServerList.elementAt(i));
}
return users;
}
public synchronized void broadcastUser(String text)
{
addUserToServer(text);
String[] users = getUser();
ChatClient client;
Enumeration clients = clientList.elements();
while (clients.hasMoreElements())
{
client = (ChatClient) (clients.nextElement());
try
{
client.clearUser();
for (int i =0; i < users.length; i++)
{
client.addUser(users[i]);
}
//client.addUser(text);
}catch (Exception e) {};
}
}
public synchronized void broadcastRemovedUser(String text)
{
userServerList.removeElement(text);
ChatClient client;
java.util.Date curdate = new java.util.Date();
ChatMessage message = new ChatMessage(curdate, text);
message.messageText = "!exit " + text + " has left the chat room!";
Enumeration clients = clientList.elements();
while (clients.hasMoreElements())
{
client = (ChatClient) (clients.nextElement());
try
{
client.removeUser(text);
client.displayMessage(message);
}catch (Exception e) {};
}
}
public synchronized void broadcastMessage(String text)
{
ChatClient client;
java.util.Date curdate = new java.util.Date();
ChatMessage message = new ChatMessage(curdate, text);
Enumeration clients = clientList.elements();
while (clients.hasMoreElements())
{
client = (ChatClient) (clients.nextElement());
try
{
client.displayMessage(message);
}catch (Exception e) {};
}
addMessageToHistory(message);
}
public synchronized void addUserToServer(String user)
{
userServerList.addElement(user);
}
public synchronized void addMessageToLog(String message) throws IOException
{
FileWriter fileWriter = new FileWriter(SERVER_LOG,true);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write(message, 0, message.length());
writer.newLine();
writer.close();
}
protected synchronized void addMessageToHistory(ChatMessage message)
{
messageHistory.addElement(message);
while (messageHistory.size() > HISTORY_LENGTH)
{
messageHistory.removeElementAt(0);
}
}
public ChatMessage[] getHistory()
{
int count = messageHistory.size();
ChatMessage[] messages = new ChatMessage[count];
for (int i = 0; i < count; i++)
{
messages[i] = (ChatMessage) (messageHistory.elementAt(i));
}
return messages;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -