91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
怀仁县| 临沭县| 望奎县| 高唐县| 临朐县| 阜城县| 依兰县| 清远市| 惠东县| 陆川县| 双柏县| 华阴市| 万安县| 巴林右旗| 贵溪市| 辽阳市| 靖远县| 黄龙县| 绥宁县| 浦江县| 姚安县| 绥芬河市| 且末县| 孝昌县| 万全县| 衡山县| 老河口市| 普安县| 平昌县| 长丰县| 开原市| 思南县| 平原县| 禄丰县| 南平市| 富锦市| 曲松县| 宿松县| 巧家县| 鸡泽县| 黄梅县|