JAVA多人聊天室的代码
时间: 2023-07-09 16:42:08 浏览: 43
以下是一个简单的Java多人聊天室的代码示例:
服务器端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
private ServerSocket serverSocket;
public Server(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
public void run() throws IOException {
while (true) {
Socket clientSocket = serverSocket.accept();
ClientHandler clientHandler = new ClientHandler(clientSocket);
new Thread(clientHandler).start();
}
}
private class ClientHandler implements Runnable {
private Socket clientSocket;
private BufferedReader in;
private PrintWriter out;
public ClientHandler(Socket socket) throws IOException {
this.clientSocket = socket;
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(clientSocket.getOutputStream(), true);
}
public void run() {
try {
while (true) {
String inputLine = in.readLine();
if (inputLine == null) {
break;
}
for (ClientHandler client : Server.this.clientHandlers) {
client.out.println(inputLine);
}
}
} catch (IOException e) {
System.out.println("Exception caught when trying to read from client: " + e);
} finally {
try {
in.close();
out.close();
clientSocket.close();
} catch (IOException e) {
System.out.println("Exception caught when trying to close client socket: " + e);
}
}
}
}
private List<ClientHandler> clientHandlers = new ArrayList<>();
public static void main(String[] args) throws IOException {
Server server = new Server(8000);
server.run();
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
private BufferedReader in;
private PrintWriter out;
private Socket socket;
public Client(String serverAddress, int port) throws IOException {
socket = new Socket(serverAddress, port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
}
public void run() throws IOException {
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String inputLine = console.readLine();
if (inputLine.equals("exit")) {
break;
}
out.println(inputLine);
String response = in.readLine();
System.out.println(response);
}
}
public static void main(String[] args) throws IOException {
Client client = new Client("localhost", 8000);
client.run();
}
}
```
注意:以上是一个简单的Java多人聊天室的代码示例,还有很多需要完善的地方。例如,需要处理客户端退出连接的情况,需要考虑消息的编码和解码等问题。