Java C/S 架构计算器:简单易懂的实现代码
很好,我可以帮您写一个简单的 Java C/S 计算器。以下是代码:
服务端(Server.java):
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8080);
System.out.println('Server started on port 8080.');
while (true) {
Socket s = ss.accept();
System.out.println('Client connected from ' + s.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println('Received from client: ' + inputLine);
String[] tokens = inputLine.split(' ');
int num1 = Integer.parseInt(tokens[0]);
int num2 = Integer.parseInt(tokens[2]);
String operator = tokens[1];
int result = 0;
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);
}
in.close();
out.close();
s.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端(Client.java):
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
Socket s = new Socket('localhost', 8080);
System.out.println('Connected to server on port 8080.');
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
int result = Integer.parseInt(in.readLine());
System.out.println('Result: ' + result);
}
in.close();
out.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个计算器可以进行基本的加减乘除运算。在客户端中,您可以像这样输入表达式:'10 + 5',然后按Enter键,程序将发送这个表达式到服务器端进行计算,并将结果返回给客户端。客户端将显示结果,然后等待下一个表达式输入。
原文地址: https://www.cveoy.top/t/topic/kR2b 著作权归作者所有。请勿转载和采集!