Slip No 18 Q B

Write a java program for simple standalone chatting application.

ChatServer.java

import java.io.*;
import java.net.*;

public class ChatServer {

    public static void main(String[] args) {
        int port = 6000;

        try {
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("Server started on port " + port);
            Socket socket = serverSocket.accept();
            System.out.println("Client connected.");

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

            // Thread to receive messages from client
            Thread receiveThread = new Thread(() -> {
                String msg;
                try {
                    while ((msg = in.readLine()) != null) {
                        System.out.println("Client: " + msg);
                    }
                } catch (IOException e) {
                    System.out.println("Connection closed.");
                }
            });
            receiveThread.start();

            // Main thread to send messages to client
            String message;
            while (true) {
                message = userInput.readLine();
                if (message.equalsIgnoreCase("exit")) {
                    break;
                }
                out.println(message);
            }

            // Close resources
            socket.close();
            serverSocket.close();
            System.out.println("Server terminated.");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ChatClient.java

import java.io.*;
import java.net.*;

public class ChatClient {

    public static void main(String[] args) {
        String host = "localhost";
        int port = 6000;

        try {
            Socket socket = new Socket(host, port);
            System.out.println("Connected to server.");

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

            // Thread to receive messages from server
            Thread receiveThread = new Thread(() -> {
                String msg;
                try {
                    while ((msg = in.readLine()) != null) {
                        System.out.println("Server: " + msg);
                    }
                } catch (IOException e) {
                    System.out.println("Connection closed.");
                }
            });
            receiveThread.start();

            // Main thread to send messages to server
            String message;
            while (true) {
                message = userInput.readLine();
                if (message.equalsIgnoreCase("exit")) {
                    break;
                }
                out.println(message);
            }

            // Close resources
            socket.close();
            System.out.println("Client terminated.");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Spread the love

Leave a Comment

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

Scroll to Top