下面是一个用 Java 编写的简单聊天室的示例代码,实现了服务器端的功能:

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 ChatRoomServer {
    private static List<Socket> clients = new ArrayList<>();
    
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8080);
            System.out.println('Server started on port 8080');
            
            while (true) {
                Socket clientSocket = serverSocket.accept();
                clients.add(clientSocket);
                
                ClientHandler clientHandler = new ClientHandler(clientSocket);
                new Thread(clientHandler).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    private static class ClientHandler implements Runnable {
        private Socket clientSocket;
        private BufferedReader reader;
        private PrintWriter writer;
        
        public ClientHandler(Socket clientSocket) {
            try {
                this.clientSocket = clientSocket;
                this.reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
                this.writer = new PrintWriter(clientSocket.getOutputStream(), true);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        @Override
        public void run() {
            try {
                String message;
                
                while ((message = reader.readLine()) != null) {
                    System.out.println('Received message: ' + message);
                    
                    // 广播消息给所有连接的客户端
                    for (Socket client : clients) {
                        PrintWriter clientWriter = new PrintWriter(client.getOutputStream(), true);
                        clientWriter.println(message);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

这个示例代码实现了一个简单的聊天室服务器端。它使用 ServerSocket 监听 8080 端口,当有新的客户端连接时,会将客户端的 Socket 对象添加到 clients 列表中,并创建一个新的线程处理该客户端的消息。

每个客户端连接都有一个独立的 ClientHandler 线程来处理。它在 run 方法中不断读取客户端发送的消息,并将消息广播给所有连接到服务器的客户端。

可以使用 Telnet 或其他 Socket 客户端工具连接到该服务器,并发送消息进行聊天。

Java 简单聊天室示例代码 - 服务器端实现

原文地址: https://www.cveoy.top/t/topic/hnX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录