用Java写一个客户端与服务端实现信息的发送与接收
时间: 2024-04-17 22:26:44 浏览: 15
可以使用Java的Socket类来实现客户端与服务端之间的信息发送与接收。下面是一个简单的示例:
服务端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,并指定端口号
ServerSocket serverSocket = new ServerSocket(8888);
// 监听客户端的连接
System.out.println("等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress());
// 创建输入流,用于接收客户端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 创建输出流,用于向客户端发送数据
PrintWriter writer = new PrintWriter(socket.getOutputStream());
// 循环接收和发送数据
String message;
while ((message = reader.readLine()) != null) {
System.out.println("收到客户端消息:" + message);
writer.println("已收到消息:" + message);
writer.flush();
}
// 关闭资源
reader.close();
writer.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,并指定服务端的IP地址和端口号
Socket socket = new Socket("localhost", 8888);
// 创建输入流,用于接收服务端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 创建输出流,用于向服务端发送数据
PrintWriter writer = new PrintWriter(socket.getOutputStream());
// 循环发送和接收数据
BufferedReader userInputReader = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = userInputReader.readLine()) != null) {
writer.println(userInput);
writer.flush();
String response = reader.readLine();
System.out.println("收到服务端消息:" + response);
}
// 关闭资源
reader.close();
writer.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码实现了一个简单的客户端与服务端的信息发送与接收功能。你可以在客户端输入消息,然后服务端将会收到该消息并回复已收到的消息。