用Java帮我实现一个简单聊天室
时间: 2023-12-11 20:03:21 浏览: 60
java多线程实现一个控制台聊天室
5星 · 资源好评率100%
好的,下面是一个简单的Java聊天室示例:
```
import java.io.*;
import java.net.*;
public class ChatRoomServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5000);
System.out.println("Server started.");
Socket clientSocket = serverSocket.accept();
System.out.println("Client " + clientSocket.getInetAddress() + " connected.");
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String inputLine, outputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Client: " + inputLine);
if (inputLine.equals("bye")) break;
outputLine = stdIn.readLine();
System.out.println("Server: " + outputLine);
out.println(outputLine);
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
上述代码实现了一个简单的聊天室服务器,它监听端口5000,等待客户端连接。每当客户端连接时,服务器会创建一个输入流和一个输出流,用于读取客户端发送的消息和向客户端发送消息。服务器还创建一个标准输入流,用于读取服务器管理员的输入。在while循环中,服务器将等待客户端发送消息,然后将其打印到控制台并将其发送回客户端。如果客户端发送“bye”消息,则服务器将关闭与该客户端的连接并退出。
下面是一个简单的Java聊天室客户端示例:
```
import java.io.*;
import java.net.*;
public class ChatRoomClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 5000);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String inputLine, outputLine;
while ((inputLine = stdIn.readLine()) != null) {
out.println(inputLine);
if (inputLine.equals("bye")) break;
outputLine = in.readLine();
System.out.println("Server: " + outputLine);
}
out.close();
in.close();
socket.close();
}
}
```
上述代码实现了一个简单的聊天室客户端,它连接到localhost上的端口5000。每当管理员输入一行消息时,客户端会将该消息发送到服务器,并等待服务器的响应。客户端还将打印服务器发送的消息到控制台。如果管理员输入“bye”消息,则客户端将关闭与服务器的连接并退出。
您可以在命令行中启动ChatRoomServer,然后启动多个ChatRoomClient来模拟多个客户端连接到聊天室,这样他们就可以互相发送消息了。请注意,此代码示例并不是一个完整的聊天室应用程序,它只是一个简单的演示。在实际应用中,您可能需要添加更多的功能和安全性措施。
阅读全文