在Java中實現一對一聊天,你可以使用Socket編程和ObjectOutputStream/ObjectInputStream。以下是一個簡單的示例,展示了如何創建一個簡單的一對一聊天應用程序。
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();
}
}
}
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"。
請注意,這個示例僅用于演示目的,實際應用中可能需要考慮更多因素,例如錯誤處理、多線程以支持多個客戶端連接等。