溫馨提示×

java怎么實現一對一聊天

小億
138
2024-12-07 08:18:35
欄目: 編程語言

在Java中實現一對一聊天,你可以使用Socket編程和ObjectOutputStream/ObjectInputStream。以下是一個簡單的示例,展示了如何創建一個簡單的一對一聊天應用程序。

  1. 首先,創建一個名為ChatServer.java的服務器端類:
import java.io.*;
import java.net.*;

public class ChatServer {
    public static void main(String[] args) {
        int port = 12345;
        try (ServerSocket serverSocket = new ServerSocket(port)) {
            System.out.println("Server is listening on port " + port);

            Socket socket = serverSocket.accept();
            System.out.println("Client connected");

            ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());

            String message;
            while ((message = (String) ois.readObject()) != null) {
                System.out.println("Received: " + message);
                oos.writeObject("Server received: " + message);
            }

            socket.close();
            serverSocket.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
  1. 然后,創建一個名為ChatClient.java的客戶端類:
import java.io.*;
import java.net.*;

public class ChatClient {
    public static void main(String[] args) {
        String serverAddress = "localhost";
        int port = 12345;

        try (Socket socket = new Socket(serverAddress, port);
             ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
             ObjectInputStream ois = new ObjectInputStream(socket.getInputStream())) {

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

            while ((userMessage = userInput.readLine()) != null && !userMessage.equalsIgnoreCase("exit")) {
                oos.writeObject(userMessage);
                System.out.println("Server response: " + ois.readObject());
            }

        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

現在,你可以運行ChatServer.java來啟動服務器,然后運行ChatClient.java來啟動客戶端??蛻舳藢⒛軌蚺c服務器進行一對一聊天。要退出聊天,請在客戶端輸入"exit"。

請注意,這個示例僅用于演示目的,實際應用中可能需要考慮更多因素,例如錯誤處理、多線程以支持多個客戶端連接等。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女