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

📄 servestart.java

📁 Received chat message sent there is choice, as well as an increase of server features and color disp
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//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 + -