java代码个人聊天室 要求: 1. 可使用文字聊天 2. 可以发送文件 3. 可以私聊
时间: 2024-02-22 07:59:34 浏览: 25
好的,这是一个很有趣的项目!首先,你需要学习如何使用Java Socket编程来实现客户端和服务器端之间的通信。以下是一个简单的代码示例,可以让你了解如何建立Socket连接和发送/接收消息。
服务器端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8000)) {
System.out.println("Server started.");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket);
// Start a new thread to handle the client
Thread thread = new Thread(new ClientHandler(socket));
thread.start();
}
} catch (IOException e) {
System.err.println("Server error: " + e.getMessage());
}
}
}
class ClientHandler implements Runnable {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ClientHandler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
String message;
while ((message = in.readLine()) != null) {
System.out.println("Message received: " + message);
// Send the message back to the client
out.println(message);
}
} catch (IOException e) {
System.err.println("Client error: " + e.getMessage());
} finally {
try {
socket.close();
} catch (IOException e) {
System.err.println("Socket not closed: " + e.getMessage());
}
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8000)) {
System.out.println("Connected to server.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// Read from the console and send to the server
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String message;
while ((message = console.readLine()) != null) {
out.println(message);
// Receive the message from the server and print it to the console
String response = in.readLine();
System.out.println("Server response: " + response);
}
} catch (IOException e) {
System.err.println("Client error: " + e.getMessage());
}
}
}
```
以上代码仅作为示例,可以帮助你了解如何使用Java Socket编程来实现基本的文本通信。如果你要实现文件传输和私聊等功能,需要在这个基础上进行进一步的开发和改进。