这次程序运用socket通信实现一个简单的聊天室。
一开始是想在控制台实现,但遇到问题是输出和输入都在一个界面上,最后还是编一个swing程序来实现。
服务器对每一个客户端分配一个线程,run函数实现不断从客户端输入数据,然后广播给所有客户端。
下面是服务器端的代码。
public class Server {
static final int PORT = 8080;
public static ArrayList<Socket> userList = new ArrayList(); //储存客户端
Server() throws IOException {
ServerSocket s = new ServerSocket(PORT);
System.out.println("Server Started");
try {
while (true) {
Socket socket = s.accept();
try {
userList.add(socket);
new Mult(socket);
} catch (IOException e) {
socket.close();
}
}
} finally {
s.close();
}
}
public static void main(String[] args) throws IOException {
new Server();
}
}
class Mult extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
Mult(Socket s) throws IOException {
socket = s;
in = new BufferedReader(new