Calculadora simple usando programación de socket Java

Prerrequisito : Programación de sockets en Java

Primero, entendemos los conceptos básicos de la programación de sockets Java. Java Socket se utiliza para comunicarse entre dos JRE diferentes. El socket de Java puede estar orientado a la conexión o sin conexión. En java, tenemos un paquete llamado “java.net”. En este paquete, tenemos dos clases, clase de socket y clase de servidor. Esas clases se utilizan para crear programas orientados a la conexión o sin conexión. En este artículo, veremos cómo el servidor Java realizará las operaciones básicas y devolverá el resultado al cliente Java. 

Cliente Java

Primero, creamos y escribimos código de socket del lado del cliente. En el programa de socket del cliente debe saber dos información

  • Dirección IP del servidor y,
  • Número de puerto

Java

// A Java program for a Client
import java.io.*;
import java.net.*;
import java.util.*;
 
public class Client {
    private Socket s = null;
    public Client(String address, int port)
    {
        try {
            // In this Code Input Getting from a user
            Scanner sc = new Scanner(System.in);
            s = new Socket(address, port);
            System.out.println("Connected");
 
            // Create two objects first is dis and dos for
            // input and output
            DataInputStream dis
                = new DataInputStream(s.getInputStream());
            DataOutputStream dos
                = new DataOutputStream(s.getOutputStream());
 
            // Making a Loop
            while (true) {
                System.out.println(
                    "Enter the operation in the form operand operator operand");
                System.out.println("Example 3 + 5 ");
                String inp = sc.nextLine();
 
                // Check the user input if user enter over
                // then
                // connect is stopped by server and user
                if (inp.equals("Over"))
                    break;
                dos.writeUTF(inp);
 
                String ans = dis.readUTF();
                System.out.println("Answer = " + ans);
            }
        }
        catch (Exception e) {
            System.out.println("Error in Connection");
        }
    }
 
    public static void main(String args[])
    {
        // Connection With Server port 5000
        Client client = new Client("127.0.0.1", 5000);
    }
}

Servidor Java

En este servidor Java, estamos realizando cálculos simples, como sumas, restas, etc. Primero en este código, recibimos información del lado del cliente. Pasamos esta información a la «clase Stringtokenizer», esta clase ayuda a extraer el «operando y la operación» exactos para realizar la operación. cuando el resultado está listo, el servidor Java lo envía de vuelta al cliente de resultados

Java

// A Java program for a Server
import java.io.*;
import java.net.*;
import java.util.*;
 
public class Server {
    // initialize socket and input stream
    private Socket socket = null;
 
    // constructor with port
    public Server(int port)
    {
        try {
            // Making a ServerSocket  object
            // for receiving Client Request
            ServerSocket ss = new ServerSocket(port);
            Socket s = ss.accept();
 
            // dis and dos object for receiving
            // input from client send output to client
            DataInputStream dis
                = new DataInputStream(s.getInputStream());
            DataOutputStream dos
                = new DataOutputStream(s.getOutputStream());
 
            while (true) {
                String input = dis.readUTF();
                if (input.equals("bye"))
                    break;
                System.out.println("Equation Received");
                int result = 0;
 
                StringTokenizer st
                    = new StringTokenizer(input);
                int oprnd1
                    = Integer.parseInt(st.nextToken());
                String operation = st.nextToken();
                int oprnd2
                    = Integer.parseInt(st.nextToken());
 
                // Calculator Operation Perform By Server
                if (operation.equals("+")) {
                    result = oprnd1 + oprnd2;
                }
                else if (operation.equals("-")) {
                    result = oprnd1 - oprnd2;
                }
                else if (operation.equals("/")) {
                    result = oprnd1 / oprnd2;
                }
                else if (operation.equals("*")) {
                    result = oprnd1 * oprnd2;
                }
                System.out.println("Sending the Result");
                dos.writeUTF(Integer.toString(result));
            }
        }
        catch (Exception e) {
            System.out.println("Error");
        }
    }
 
    public static void main(String args[])
    {
        // Server Object and set port number 5000
        Server server = new Server(5000);
    }
}

Producción:

Output

 

Publicación traducida automáticamente

Artículo escrito por neeraj3304 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *