MUTUAL EXCLUSION

Mutual Exclusion Token Based Algorithm: 

EchoServer.java:

import java.io.*;

import java.net.*;

public class EchoServer implements Runnable

{

    Socket socket=null;

    static ServerSocket ss;

    EchoServer(Socket newSocket)

    {

        this.socket=newSocket;       

    }

    public static void main(String args[]) throws IOException

    {

        ss=new ServerSocket(7000);

        System.out.println("Server Started");

        while(true)

        {

            Socket s = ss.accept();

            EchoServer es = new EchoServer(s);

            Thread t = new Thread(es);

            t.start();

        }

    }

    public void run()

    {

        try {       

            BufferedReader in = new BufferedReader(new

InputStreamReader(socket.getInputStream()));

            while(true)

            {

                System.out.println(in.readLine());

            }

        }

        catch(Exception e)

        {}

    }

}

EchoClientOne.java:

import java.io.*;

import java.net.*;

public class EchoClientOne

{

    public static void main(String args[])throws IOException

    {

        Socket s=new Socket("localhost",7000);

        PrintStream out = new PrintStream(s.getOutputStream());

       

        ServerSocket ss = new ServerSocket(7001);

        Socket s1 = ss.accept();

        BufferedReader in1 = new BufferedReader(new

InputStreamReader(s1.getInputStream()));

        PrintStream out1 = new PrintStream(s1.getOutputStream());

        BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));

        String str="Token";

        while(true)

        {

            if(str.equalsIgnoreCase("Token"))

            {

                System.out.println("Do you want to send some data");

                System.out.println("Enter Yes or No");

                str=br.readLine();

                if(str.equalsIgnoreCase("Yes"))

                {

                    System.out.println("Enter the data");

                    str=br.readLine();

                    out.println(str);

                }

                out1.println("Token");

            }

            System.out.println("Waiting for Token");

            str=in1.readLine();

        }

    }

}

EchoClientTwo.java:

import java.io.*;

import java.net.*;

public class EchoClientTwo

{

    public static void main(String args[])throws IOException

    {

        Socket s=new Socket("localhost",7000);

        PrintStream out = new PrintStream(s.getOutputStream());


        Socket s2=new Socket("localhost",7001);

        BufferedReader in2 = new BufferedReader(new

InputStreamReader(s2.getInputStream()));

        PrintStream out2 = new PrintStream(s2.getOutputStream());

        BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));

        String str;

        while(true)

        {

            System.out.println("Waiting for Token");

            str=in2.readLine();

            if(str.equalsIgnoreCase("Token"))

            {

                System.out.println("Do you want to send some data");

                System.out.println("Enter Yes or No");

                str=br.readLine();

                if(str.equalsIgnoreCase("Yes"))

                {

                    System.out.println("Enter the data");

                    str=br.readLine();

                    out.println(str);

                }

                out2.println("Token");

            }

        }

    }

}


Output:








Comments