Slip No 25 Q A

Write a Java program to accept a number through client terminal, send it to the Server, Server calculates its factors and sends it to the client.

Server.java

import java.io.*;
import java.net.*;
import java.util.ArrayList;

public class Server {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(5000);
            System.out.println("Server started. Waiting for client...");

            Socket socket = serverSocket.accept();
            System.out.println("Client connected: " + socket.getInetAddress());

            // Streams for communication
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

            // Read number from client
            int num = Integer.parseInt(in.readLine());
            ArrayList<Integer> factors = new ArrayList<>();

            // Calculate factors
            for (int i = 1; i <= num; i++) {
                if (num % i == 0) {
                    factors.add(i);
                }
            }

            // Send factors to client
            out.println("Factors of " + num + ": " + factors);

            // Close connections
            in.close();
            out.close();
            socket.close();
            serverSocket.close();

        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

Client.java

import java.io.*;
import java.net.*;
import java.util.Scanner;

public class Client {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 5000);
            System.out.println("Connected to server.");

            Scanner sc = new Scanner(System.in);
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            // Accept number from user
            System.out.print("Enter a number: ");
            int num = sc.nextInt();

            // Send number to server
            out.println(num);

            // Receive and display factors from server
            String response = in.readLine();
            System.out.println(response);

            // Close connections
            sc.close();
            in.close();
            out.close();
            socket.close();

        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}
Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top