//聊天室服务器
import java.net.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class Server extends JFrame {
private TextArea msgA = new TextArea();//服务器用来输入的文本域
private TextArea area = new TextArea();//服务器显示消息的文本域
private TextField portT = new TextField("8888");
private java.awt.List list = new java.awt.List();//在线客户列表
private ServerSocket server;//服务器
private Socket client;//客户端
private Map
container = new HashMap();//HashMap
void init() {
//设置几个面板//
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Panel p4 = new Panel();
Panel p5 = new Panel();
Panel p6 = new Panel();
Panel p7 = new Panel();
Panel p8 = new Panel();
Panel p9 = new Panel();
Panel p10 = new Panel();
//设置两个主要的文本框
Label lb1 = new Label("服务器界面");
lb1.setBackground(new Color(250,120,150));
Label lb2 = new Label("port");
BorderLayout border1 = new BorderLayout();
p1.setLayout(border1);
p1.add(BorderLayout.CENTER, area);
BorderLayout border2 = new BorderLayout();
p5.setLayout(border2);
p5.add(BorderLayout.NORTH, p3);
p5.add(BorderLayout.CENTER, msgA);
BorderLayout border3 = new BorderLayout();
p7.setLayout(border3);
p7.add(BorderLayout.CENTER, p1);
p7.add(BorderLayout.SOUTH, p5);
p7.setBackground(new Color(250,150,200));
JButton startButton = new JButton("启动服务");
JButton sendButton = new JButton("发送");
JButton flushButton = new JButton("刷新列表");
FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
p8.setLayout(fl);
p8.add(lb2);
p8.add(portT);
p8.add(startButton);
p8.add(sendButton);
p8.add(flushButton);
p8.setBackground(new Color(250,120,150));
BorderLayout border4 = new BorderLayout();
p9.setLayout(border4);
p9.add(BorderLayout.CENTER, p7);
p9.add(BorderLayout.SOUTH, p8);
p10.setLayout(new BorderLayout());
Label lb3 = new Label("在线用户");
lb3.setBackground(new Color(250,120,150));
p10.add(lb3,BorderLayout.NORTH);
p10.add(list,BorderLayout.CENTER);
area.setEditable(false);
BorderLayout border = new BorderLayout();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
this.setLayout(border);
this.add(BorderLayout.NORTH, lb1);
this.add(BorderLayout.CENTER, p9);
this.add(BorderLayout.EAST, p10);
this.setTitle("聊天服务器 ");
this.setBounds(100, 100, 600, 550);
this.setVisible(true);
//"启动服务"按钮监听器
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Thread t = new Start();
t.start();
}
});//启动按钮监听器----end
//发
送按钮监听器
sendButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String msg = msgA.getText();
if (msg != null &;&; msg != "") {//如果消息不为空
Calendar ca = new GregorianCalendar();
int hh = ca.get(Calendar.HOUR_OF_DAY);
int mm = ca.get(Calendar.MINUTE);
int ss = ca.get(Calendar.SECOND);
String time = new String(hh + ":" + mm + ":" + ss + " ");
broadcast(time + "[系统消息]: " + msg);//那么广播这条系统消息
area.append(time + "[系统消息]: " + msg + "\n");
msgA.setText("");
}
}
});//end
//刷新按钮监听器
flushButton.addActionListener(new ActionListener() {
public void actionP