java编写一个简单的网络聊天室,实现2个人能够通过网络编程在各自电脑上进行聊天操作
时间: 2024-05-03 08:21:24 浏览: 14
以下是一个简单的Java网络聊天室,可以让两个用户进行聊天操作。
Server.java
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888); // 创建ServerSocket,监听端口8888
System.out.println("Server started.");
Socket socket = serverSocket.accept(); // 等待客户端连接
System.out.println("Client connected.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
while (true) {
String line = in.readLine(); // 读入客户端发送的消息
if (line == null) { // 客户端已断开
break;
}
System.out.println("Received: " + line);
out.println("Echo: " + line); // 回应客户端消息
}
in.close();
out.close();
socket.close();
serverSocket.close();
System.out.println("Server stopped.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
Client.java
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888); // 连接服务器
System.out.println("Connected to server.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = reader.readLine()) != null) {
out.println(line); // 发送消息给服务器
String response = in.readLine(); // 读取服务器的回应
System.out.println("Received: " + response);
}
reader.close();
in.close();
out.close();
socket.close();
System.out.println("Disconnected from server.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用时,先运行Server.java,再运行两个Client.java。每个Client.java可以输入消息并发送给服务器,服务器会将消息回应给客户端。可以在不同的终端窗口中运行Client.java,这样就可以在不同的电脑上进行聊天了。