使用Java语言实现一个客户端和服务器通信的功能,要求客户端与服务器之间至少有三次通信。
时间: 2024-03-06 13:47:09 浏览: 18
好的,我可以为你提供一个简单的Java代码示例,实现客户端和服务器之间的通信。这个示例包括一个服务器端和一个客户端,客户端将向服务器发送三次请求,并接收服务器的响应。
首先是服务器端的代码,它将监听来自客户端的连接请求,并对每个连接请求创建一个新的线程进行处理:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("Server is listening on port 9999");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("New client connected");
ClientHandler clientHandler = new ClientHandler(socket);
clientHandler.start();
}
}
private static class ClientHandler extends Thread {
private final Socket clientSocket;
private final BufferedReader in;
private final PrintWriter out;
public ClientHandler(Socket socket) throws IOException {
this.clientSocket = socket;
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(clientSocket.getOutputStream(), true);
}
@Override
public void run() {
try {
String request, response;
int count = 0;
while (count < 3) {
request = in.readLine();
System.out.println("Received from client: " + request);
response = "Response to " + request;
out.println(response);
count++;
}
clientSocket.close();
System.out.println("Client disconnected");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
然后是客户端的代码,它将连接到服务器并发送三个请求,每次请求后等待服务器的响应:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 9999);
System.out.println("Connected to server");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String request, response;
for (int i = 0; i < 3; i++) {
request = "Request " + (i+1);
out.println(request);
response = in.readLine();
System.out.println("Received from server: " + response);
}
socket.close();
System.out.println("Connection closed");
}
}
```
以上就是一个简单的Java代码示例,实现了客户端和服务器之间的通信,客户端向服务器发送三次请求,并接收服务器的响应。