📄 serverchat.java
字号:
package org.my.test.chat;
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.util.ArrayList;
import java.util.List;
public class ServerChat {
public static void main(String[] args) {
List<Socket> lt = new ArrayList<Socket>();
ServerSocket ss = null;
Socket st = null;
try {
ss = new ServerSocket(9100);
} catch (IOException e) {
System.out.println("服务打开套接字出错,服务启动失败..");
}
System.out.println("服务启动启动成功,开始提供服务...");
while (true) {
try {
st = ss.accept();
} catch (IOException e) {
System.out.println("有一个用户连接失败..");
}
lt.add(st);
Thread t = new Thread(new ChatThread(st, lt));
t.start();
}
}
}
class ChatThread implements Runnable {
private Socket s;
private List<Socket> lt;
private BufferedReader br;
PrintWriter pw;
public ChatThread(Socket s, List<Socket> lt) {
this.s = s;
this.lt = lt;
}
@Override
public void run() {
while (true) {
try {
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String msg = br.readLine();
for (Socket st : lt) {
pw = new PrintWriter(st.getOutputStream());
pw.println(msg);
pw.flush();
}
} catch (IOException e) {
lt.remove(s);
s = null;
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -