📄 myserversocket.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 + -