用Java做一个书本的聊天室程序
时间: 2023-09-12 15:12:51 浏览: 46
好的,下面是一个简单的 Java 聊天室程序的实现:
1. 创建一个 ServerSocket 对象,指定端口号,等待客户端连接:
```
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
```
2. 在客户端连接后,创建一个线程来处理客户端发送的消息,并发送给所有连接到服务器的客户端:
```
new Thread(() -> {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message;
while ((message = reader.readLine()) != null) {
for (Socket clientSocket : clientSockets) {
if (clientSocket != socket) {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
writer.write(message + "\n");
writer.flush();
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}).start();
```
3. 在服务器端,维护一个客户端 Socket 的列表,用于向所有客户端发送消息:
```
List<Socket> clientSockets = new ArrayList<>();
while (true) {
Socket socket = serverSocket.accept();
clientSockets.add(socket);
}
```
4. 在客户端,创建一个线程用于接收服务器发送的消息,并将其显示在客户端界面上:
```
new Thread(() -> {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message;
while ((message = reader.readLine()) != null) {
// 显示消息
}
} catch (IOException e) {
e.printStackTrace();
}
}).start();
```
这只是一个简单的聊天室程序示例,你可以根据自己的需求进行扩展和改进。