Java客户端和服务器建立套接字连接后,客户将如下格式的账单发送给服务器。 房租:2189元 水费:112.9元 电费:569元 物业费:832元 服务器返回给客户的信息是: 您的账单: 房租:2189元 水费:112.9元 电费:569元 物业费:832元 总计:3699元
时间: 2023-09-20 08:06:18 浏览: 56
套接字客户端和服务器java代码
4星 · 用户满意度95%
好的,这是一个简单的网络编程示例。以下是Java代码示例:
服务器端代码:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功!");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String bill = in.readLine();
System.out.println("接收到账单:" + bill);
// 解析账单并计算总金额
String[] items = bill.split("\\s+");
int total = 0;
for (String item : items) {
if (item.startsWith("房租:")) {
total += Integer.parseInt(item.substring(3));
} else if (item.startsWith("水费:")) {
total += Double.parseDouble(item.substring(3));
} else if (item.startsWith("电费:")) {
total += Double.parseDouble(item.substring(3));
} else if (item.startsWith("物业费:")) {
total += Double.parseDouble(item.substring(4));
}
}
// 发送账单和总金额给客户端
out.println("您的账单: " + bill);
out.println("总计:" + total + "元");
// 关闭连接
in.close();
out.close();
socket.close();
}
}
}
```
客户端代码:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 1234);
System.out.println("连接成功!");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送账单到服务器
String bill = "房租:2189元 水费:112.9元 电费:569元 物业费:832元";
out.println(bill);
System.out.println("发送账单:" + bill);
// 接收服务器返回的账单和总金额
String response = in.readLine();
System.out.println("收到服务器返回的账单:" + response);
response = in.readLine();
System.out.println("收到服务器返回的总金额:" + response);
// 关闭连接
in.close();
out.close();
socket.close();
}
}
```
运行客户端和服务器端代码后,客户端会向服务器发送账单,服务器会解析账单并计算总金额,然后发送账单和总金额给客户端。客户端接收服务器返回的账单和总金额后,就可以关闭连接了。
阅读全文