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

📄 myserversocket.java

📁 一个基于java的局域网聊天程序
💻 JAVA
字号:
import java.awt.Color;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
public class MyServerSocket extends JFrame{
	private JTextArea textArea_1;
	private JTextArea textArea;
	private ServerSocket serverSocket=null;
	private int port =1704;
	final static  HashMap<String,PrintWriter> map =new HashMap<String,PrintWriter> ();
	//帐号与??的对应关系表,静态最终,方便其他类对其查询
	public MyServerSocket() throws IOException {
		super("服务器控制台");
		setSize(350, 300);
		this.setLocation(350, 300);
		
		serverSocket =new ServerSocket(port);
		
		getContentPane().setLayout(null);
		getContentPane().setBackground(new Color(255, 204, 255));

		final JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBorder(new TitledBorder(null, "在线用户列表", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
		scrollPane.setBounds(25, 36, 140, 183);
		getContentPane().add(scrollPane);

		textArea = new JTextArea();
		textArea.setEditable(false);
		scrollPane.setViewportView(textArea);

		final JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBorder(new TitledBorder(null, "系统状态", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
		scrollPane_1.setBounds(191, 36, 130, 183);
		getContentPane().add(scrollPane_1);

		textArea_1 = new JTextArea();
		textArea_1.setForeground(new Color(102, 255, 255));
		textArea_1.setBackground(new Color(0, 51, 0));
		scrollPane_1.setViewportView(textArea_1);
		
		this.setResizable(false);
		this.setVisible(true);
	}
	public PrintWriter getmap(String name) {//得到与name匹配的PrintWriter
		return this.map.get(name);
	}
	
	public void service() {
		//服务
		System.out.println("服务器启动...");
		textArea_1.append("服务器启动...\n");
		while(true) {
			try {
				Socket client=serverSocket.accept();
				BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
				PrintWriter pw=new PrintWriter(client.getOutputStream(),true);
				String cname=br.readLine();
				textArea.append(cname+"\n");//添加成为在线用户
				map.put(cname, pw);//将帐号与输出流对应起来
				System.out.println(map.toString());
				Thread thread = new Thread(new ServerSocketRunnable(client));
				thread.start();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	 
	public static void main(String[] args) throws IOException {
		MyServerSocket myserverSocket = new MyServerSocket();
		myserverSocket.service();

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -