Java客户端和服务器建立套接字连接后,客户将如下格式的账单发送给服务器。 房租:2189元 水费:112.9元 电费:569元 物业费:832元 服务器返回给客户的信息是: 您的账单: 房租:2189元 水费:112.9元 电费:569元 物业费:832元 总计:3699元
时间: 2023-09-20 21:06:24 浏览: 95
好的,这个问题需要编写 Java 代码实现。首先,客户端需要建立套接字连接并发送账单信息给服务器,代码如下:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
// 建立套接字连接
Socket socket = new Socket("服务器IP地址", 8888);
// 发送账单信息给服务器
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.println("房租:2189元");
pw.println("水费:112.9元");
pw.println("电费:569元");
pw.println("物业费:832元");
pw.flush();
// 接收服务器返回的信息并输出
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
// 关闭流和套接字连接
br.close();
is.close();
pw.close();
os.close();
socket.close();
}
}
```
接下来,服务器需要接收账单信息并计算总金额,然后返回给客户端。代码如下:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
// 建立服务器套接字,并等待客户端连接
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
// 接收客户端发送的账单信息,并计算总金额
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
double total = 0;
while ((line = br.readLine()) != null) {
System.out.println(line);
String[] strs = line.split(":");
total += Double.parseDouble(strs[1].substring(0, strs[1].length() - 1));
}
// 返回账单信息和总金额给客户端
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.println("您的账单:");
is = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
pw.println(line);
}
pw.println("总计:" + total + "元");
pw.flush();
// 关闭流和套接字连接
br.close();
is.close();
pw.close();
os.close();
socket.close();
serverSocket.close();
}
}
```
需要注意的是,上述代码中的服务器 IP 地址需要替换为实际的 IP 地址。同时,客户端和服务器的代码需要分别保存在不同的文件中,并在不同的终端窗口中启动。
阅读全文