Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package task1;
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- public class TCPServer
- {
- public static List<String> function(String input)
- {
- List<String> list = new ArrayList();
- double result = 0;
- List<String> tokens = new ArrayList<>();
- tokens.addAll(Arrays.asList(input.split(":")));
- try
- {
- String operator = tokens.get(0);
- double operand1 = Double.parseDouble(tokens.get(1));
- double operand2 = 0;
- switch (operator)
- {
- case "+":
- operand2 = Double.parseDouble(tokens.get(2));
- result = operand1 + operand2;
- list.add(Double.toString(result));
- break;
- case "-":
- operand2 = Double.parseDouble(tokens.get(2));
- result = operand1 - operand2;
- list.add(Double.toString(result));
- break;
- case "*":
- operand2 = Double.parseDouble(tokens.get(2));
- result = operand1 * operand2;
- list.add(Double.toString(result));
- break;
- case "/":
- operand2 = Double.parseDouble(tokens.get(2));
- result = operand1 / operand2;
- list.add(Double.toString(result));
- break;
- case "%":
- operand2 = Double.parseDouble(tokens.get(2));
- result = operand1 % operand2;
- list.add(Double.toString(result));
- break;
- case "sqrt()":
- if(operand1<0)
- {
- list.add("Infinity");
- }
- else
- {
- result = Math.sqrt(operand1);
- list.add(Double.toString(result));
- }
- break;
- case "sin()":
- result = Math.sin(operand1);
- list.add(Double.toString(result));
- break;
- case "cos()":
- result = Math.cos(operand1);
- list.add(Double.toString(result));
- break;
- default:
- list.add("Invalid operation");
- break;
- }
- }
- catch (Exception e)
- {
- list.add(e.toString());
- }
- return list;
- }
- public static void main(String[] args)
- {
- try
- {
- ServerSocket serverSocket = new ServerSocket(1256);
- System.out.println("Waiting for client....");
- Socket connectionSocket = serverSocket.accept();
- BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
- String sentenceFromClient = inFromClient.readLine();
- String modifiedResult = function(sentenceFromClient).get(0);
- DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
- outToClient.writeBytes(modifiedResult + '\n');
- serverSocket.close();
- }
- catch (IOException ex)
- {
- System.out.println("Unable to attach " + ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement