用Java写个服务器和客户端,客户端传json给服务端,服务端读取数据传给客户
时间: 2023-11-04 11:05:48 浏览: 71
好的,这个可以使用Java的Socket编程实现。以下是一个简单的示例,仅供参考:
服务端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
// 创建ServerSocket对象,指定监听的端口号
serverSocket = new ServerSocket(8888);
} catch (IOException e) {
System.err.println("Could not listen on port: 8888.");
System.exit(1);
}
Socket clientSocket = null;
try {
System.out.println("Waiting for connection...");
// 等待客户端连接
clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket);
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
// 获取输入输出流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received: " + inputLine);
// 将接收到的数据发送回客户端
out.println(inputLine);
}
// 关闭连接
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
// 创建Socket对象,指定连接的服务器和端口号
socket = new Socket("localhost", 8888);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: localhost.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: localhost.");
System.exit(1);
}
// 构造JSON对象
JSONObject json = new JSONObject();
json.put("name", "张三");
json.put("age", 18);
// 向服务端发送JSON数据
out.println(json.toString());
// 接收服务端返回的数据
String response = in.readLine();
System.out.println("Response from server: " + response);
// 关闭连接
out.close();
in.close();
socket.close();
}
}
```
注意:以上示例代码仅仅是一个简单的示例,实际使用时还需要处理异常、加入数据校验等等。此外,JSON的处理可以使用第三方库,比如Gson、Jackson等。
阅读全文