📄 servestart.java
字号:
//package net.yangzhe.chatSocket;
import java.awt.BorderLayout;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Vector;
import java.util.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.event.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Vector;
public class ServeStart extends JFrame {
private Thread t,t2;
private JPanel jContentPane = null;
private JButton jButton = null;
private JScrollPane jScrollPane = null;
private JScrollPane jScrollPane1 = null;
private JTextPane jTextPane1 = null;
private JLabel jLabel = null;
private JButton jButton1,jButton3 = null;
public static JList jList = null;
static Object index;
/**
* This is the default constructor
* @throws IOException
*/
public ServeStart() throws IOException {
super();
initialize();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//startServer();
}
private void startServer() throws IOException{
ServerSocket server=new ServerSocket(5678);
ChatServer.isWork=true;
while(true){
//transfer location change Single User or Multi User
new ChatServer(server.accept(),this).start();
//s.start();
//ChatServer.serverCollection.add(s);
if(!ChatServer.isWork){
break;
}
}
server.close();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Chat服务器");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel = new JLabel();
jLabel.setBounds(new java.awt.Rectangle(10,108,56,47));
jLabel.setText("在线名单");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJScrollPane1(), null);
jContentPane.add(jLabel, null);
jContentPane.add(getJButton1(), null);
jContentPane.add(getJButton3(), null);
}
return jContentPane;
}
private void endServer() {
// TODO Auto-generated method stub
ChatServer.end();
//ChatServer.sendMsg("%7%7",ChatServer.socketlist);
ChatServer.sendMsg("%2%2,"+ChatServer.now()+","+"服务器以关闭..%8%8",ChatServer.socketlist);
for(int i=0;i<ChatServer.serverCollection.size();i++){
try{
((ChatServer)ChatServer.serverCollection.get(i)).client.close();
}catch(Exception e){
e.printStackTrace();
}finally{
((ChatServer)ChatServer.serverCollection.get(i)).stop();
}
}
ChatServer.socketlist.clear();
//userSocket.remove(currentUser);
ChatServer.serverCollection.clear();
ChatServer.userList.clear();
//String[] clear={""};
jList.setListData(ChatServer.userList);
jButton1.setEnabled(true);
jButton.setEnabled(false);
t.stop();
//t2.stop();
System.out.println("actionPerformed()");
}
private JButton getJButton3(){
if(jButton3==null){
jButton3=new JButton();
jButton3.setBounds(new java.awt.Rectangle(14,65,86,23));
jButton3.setText("踢出用户");
jButton3.setEnabled(false);
jButton3.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
if(index!=null){
//ChatServer.check=true;
System.out.println((String)index+" 已经被踢出去了1");
ChatServer.delete((String)index);
}
}
});
}
return jButton3;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(197,136,86,23));
jButton.setText("关闭服务");
jButton.setEnabled(false);
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
endServer();
}
});
}
return jButton;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new java.awt.Rectangle(14,7,270,43));
jScrollPane.setViewportView(getJTextPane1());
}
return jScrollPane;
}
/**
* This method initializes jScrollPane1
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane1() {
if (jScrollPane1 == null) {
jScrollPane1 = new JScrollPane();
jScrollPane1.setBounds(new java.awt.Rectangle(74,104,109,54));
jScrollPane1.setViewportView(getJList());
}
return jScrollPane1;
}
/**
* This method initializes jTextPane1
*
* @return javax.swing.JTextPane
*/
private JTextPane getJTextPane1() {
if (jTextPane1 == null) {
jTextPane1 = new JTextPane();
jTextPane1.setText("这里是服务器状态栏,还没写相应方法。");
jTextPane1.setEditable(false);
}
return jTextPane1;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new java.awt.Rectangle(195,106,88,24));
jButton1.setText("开启服务");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
t = new Thread(new Runnable(){
public void run() {
ChatServer.isWork=true;
try {
startServer();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" thead t");
}
}
});
t.start();
t2 = new Thread(new Runnable(){
public void run() {
while(true){
ChatServer.cache="";
ChatServer.outtype=false;
//Vector <String> test=ChatServer.getUserList();
//jList.setListData(test);
try {
Thread.sleep(500);
//System.out.println("sleepfalse");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ChatServer.outtype=true;
try {
Thread.sleep(500);
//System.out.println("sleeptrue");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
//t2.start();
jButton.setEnabled(true);
jButton1.setEnabled(false);
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return jButton1;
}
/**
* This method initializes jList
*
* @return javax.swing.JList
*/
private JList getJList() {
if (jList == null) {
jList = new JList();
jList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
//Vector <String> test=ChatServer.getUserList();
//jList.updateUI();
if((index=jList.getSelectedValue())!=null)
// index=test[index1];
jButton3.setEnabled(true);
else jButton3.setEnabled(false);
}
});
}
return jList;
}
public static void main(String[] args) throws IOException{
ServeStart s = new ServeStart();
s.show();
ServerSocket server=new ServerSocket(5678);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -