⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mathserver.java

📁 JAVA实现的一个能够做多个数学功能的client-server程序。
💻 JAVA
字号:
import java.io.*;
import java.net.*;

public class MathServer extends Thread{
	private Socket socket;
	private MathService mathService;
	
	public void setMathService(MathService mathService) {
		this.mathService = mathService;
	}
	
	public void setSocket(Socket socket) {
		this.socket = socket;
	}
	
	public void run(){
		try{
			BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			String line = reader.readLine();
			String result = "";
			try{
			result = (float)parseExecution(line)+"";
			}catch(Exception e){
				result = e.getMessage();
			}
			BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
			writer.write(""+result);
			writer.newLine();
			writer.flush();
			reader.close();
			writer.close();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				socket.close();
				}catch(IOException e){
					e.printStackTrace();
				}
		}
	}
	
	public double parseExecution(String line) throws
			IllegalArgumentException{
		//get the argument from the original data received and caculate the result
		double result = Double.MAX_VALUE;
		double value = 0;
		String[] elements = line.split(":");
		if(elements.length != 2){
			throw new IllegalArgumentException("Parsing Error!");
		}
		try{
			value = Double.parseDouble(elements[1]);
		}catch(Exception e){
			throw new IllegalArgumentException("Invalid arguments!");
		}
		if(elements[0].equalsIgnoreCase("sqrt")){
			result = mathService.sqrt(value);
		}
		else if(elements[0].equalsIgnoreCase("sin")){
			result = mathService.sin(value);
		}
		else if(elements[0].equalsIgnoreCase("cos")){
			result = mathService.cos(value);
		}
		else if(elements[0].equalsIgnoreCase("tan")){
			result = mathService.tan(value);
		}
		else if(elements[0].equalsIgnoreCase("log")){
			result = mathService.log(value);
		}
		else if(elements[0].equalsIgnoreCase("prime")){
			boolean tag = true;
			tag = mathService.prime((int)value);
			if(tag == true){
				result = 1;
			}
			else{
				result = 0;
			}
		}
		else{
			throw new IllegalArgumentException("Invalid math operation!");
		}
		return result;
	}
	
	public static void main(String[] args)throws Exception{
		int port = 0;
		if(args.length == 1){
			try{
				port = Integer.parseInt(args[0]);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		else{
			System.out.print("Error port number!");
			System.exit(0);
		}
		System.out.println("Math server is running...");
		ServerSocket serverSocket = new ServerSocket(port);
		while(true){
			//whenever accept a connection
			Socket socket = serverSocket.accept();
			//create a thread to do math service
			MathServer mathServer = new MathServer();
			mathServer.setSocket(socket);
			mathServer.setMathService(new MathService());
			//do the math service
			mathServer.start();
		}
	}
	
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -