中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
灌云县| 林周县| 酒泉市| 镇巴县| 隆安县| 江永县| 陈巴尔虎旗| 大理市| 桂林市| 崇文区| 和硕县| 湛江市| 永新县| 铜陵市| 汽车| 玉环县| 临西县| 金沙县| 洞口县| 武义县| 扶风县| 石河子市| 上虞市| 淳化县| 南投市| 阿拉善盟| 安乡县| 普宁市| 双桥区| 兴仁县| 连州市| 莱阳市| 萍乡市| 溧水县| 四子王旗| 禹城市| 珠海市| 栖霞市| 丹东市| 伽师县| 荣成市|