JAVA实现一个客户端和服务器通信的功能,要求客户端与服务器之间至少有三次通信。并说明文件如何书写
时间: 2024-03-19 17:43:08 浏览: 15
以下是一个简单的Java客户端和服务器端通信的示例,其中客户端和服务器端之间进行了三次通信,分别是连接、发送消息和接收消息。
1. 服务器端代码
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String message = reader.readLine();
System.out.println("客户端发送消息:" + message);
writer.write("服务器已收到消息:" + message + "\n");
writer.flush();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 客户端代码
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 8888);
System.out.println("连接服务器成功");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write("Hello Server\n");
writer.flush();
String message = reader.readLine();
System.out.println("服务器返回消息:" + message);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
3. 文件结构
```
- src
- Client.java
- Server.java
```
其中,客户端和服务器端的代码分别存放在Client.java和Server.java文件中。
在运行程序时,先启动服务器端程序,然后再启动客户端程序。客户端程序会与服务器端建立连接,并发送一条消息给服务器端。服务器端接收到消息后,发送一条确认消息给客户端,并关闭连接。客户端接收到确认消息后,关闭连接。