亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java聊天室怎么實現

小億
82
2024-09-26 04:02:00
欄目: 編程語言

實現一個Java聊天室,你可以使用套接字編程(Socket Programming)和多線程。以下是一個簡單的Java聊天室實現步驟:

  1. 創建服務器端(Server)類:
import java.io.*;
import java.net.*;
import java.util.*;

public class Server {
    private static final int PORT = 12345;
    private static List<Socket> clients = new ArrayList<>();

    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(PORT);
        System.out.println("Server started, waiting for connections...");

        while (true) {
            Socket clientSocket = serverSocket.accept();
            clients.add(clientSocket);
            System.out.println("New client connected: " + clientSocket.getInetAddress());

            new Thread(new ClientHandler(clientSocket)).start();
        }
    }
}
  1. 創建客戶端(Client)類:
import java.io.*;
import java.net.*;

public class Client {
    private static final String SERVER_ADDRESS = "localhost";
    private static final int PORT = 12345;

    public static void main(String[] args) throws IOException {
        Socket socket = new Socket(SERVER_ADDRESS, PORT);
        BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter output = new PrintWriter(socket.getOutputStream(), true);

        BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));

        new Thread(() -> {
            try {
                while (true) {
                    String message = userInput.readLine();
                    if (message != null && !message.isEmpty() && message.equalsIgnoreCase("/exit")) {
                        break;
                    }
                    output.println(message);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

        while (true) {
            String message = input.readLine();
            if (message != null && !message.isEmpty() && message.equalsIgnoreCase("/exit")) {
                break;
            }
            System.out.println("Received from server: " + message);
        }
    }
}
  1. 運行服務器端和客戶端:

首先運行Server類,然后運行多個Client類實例。現在你可以在不同的客戶端輸入消息并查看它們是否在其他客戶端上顯示。

注意:這個示例僅適用于單個服務器和多個客戶端。如果你需要實現一個具有多個服務器和服務器之間的通信的聊天室,你需要使用更復雜的網絡編程技術,例如分布式系統。

0
木兰县| 乌拉特后旗| 藁城市| 濉溪县| 洛隆县| 贵定县| 玉树县| 佛冈县| 永胜县| 嘉善县| 乃东县| 五家渠市| 韶关市| 兴国县| 文安县| 丹东市| 临江市| 美姑县| 津市市| 城固县| 饶河县| 邵阳县| 左权县| 崇阳县| 博乐市| 库车县| 辉县市| 湘潭市| 新兴县| 永丰县| 依安县| 天水市| 武定县| 克什克腾旗| 吉木萨尔县| 克拉玛依市| 连平县| 忻州市| 铅山县| 武胜县| 景东|