基于socket的计算器java
时间: 2023-12-08 08:04:29 浏览: 26
以下是一个基于Socket的Java计算器示例:
服务端:
```java
import java.io.*;
import java.net.*;
public class CalculatorServer {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(1234);
System.out.println("Server is running...");
while (true) {
Socket client = server.accept();
System.out.println("Client connected");
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
int result = 0;
String input;
while ((input = in.readLine()) != null) {
String[] tokens = input.split(" ");
int num1 = Integer.parseInt(tokens[0]);
int num2 = Integer.parseInt(tokens[2]);
String operator = tokens[1];
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
out.println(result);
}
client.close();
System.out.println("Client disconnected");
}
}
catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
客户端:
```java
import java.io.*;
import java.net.*;
public class CalculatorClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 1234);
System.out.println("Connected to server");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = input.readLine()) != null) {
out.println(line);
int result = Integer.parseInt(in.readLine());
System.out.println("Result: " + result);
}
socket.close();
System.out.println("Disconnected from server");
}
catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
运行服务端和客户端之后,客户端可以输入表达式,并将其发送到服务器进行计算。服务器将计算结果发送回客户端,并在客户端上显示结果。