Showing posts with label Client Server Program. Show all posts


Sender Side Program

import java.io.*;
import java.net.*;
class slidingSender
{
    public void process()
    {
        try
        {
            ServerSocket server= new ServerSocket(2500);
            Socket client = server.accept();
            BufferedReader user=new BufferedReader(new InputStreamReader(System.in));
            BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintWriter pr=new PrintWriter(client.getOutputStream(),true);
            String buf[]=new String[8];
            int index=0,sws=8,rws;
            String ch;
            do
            {
                System.out.println("Enter the number of frame send to the receiver:");
                int nf=Integer.parseInt(user.readLine());
                pr.println(nf);
                if(nf<=sws-1)
                {
                    System.out.println("Enter the "+nf+" Message send to the receiver");
                    for(int i=0;i<nf;i++)
                    {
                        buf[i]=user.readLine();
                        pr.println(buf[i]);

                    }
                   
                    sws=sws-nf;
                    int ackno=Integer.parseInt(br.readLine());
                    System.out.println("Acknowledge Received For the Frame"+ackno);
                    sws=sws+nf;

                }
                else
                {
                    System.out.println("SENDER WINDOW SIZE EXCEEDS");
                }
                System.out.println("Do You Want To Continue(y/n)");
                ch=user.readLine();
                pr.println(ch);
            }
            while(ch.equals("y"));
        }
        catch(Exception e){}
    }
    public static void main(String arg[])
    {
        slidingSender s= new slidingSender();
        s.process();
    }

}

Receiver Side Program

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

class slidingReceiver
{
    public void process()
    {
        try
        {
            Socket client = new Socket(InetAddress.getLocalHost(),2500);
            BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
            BufferedReader user=new BufferedReader(new InputStreamReader(System.in));
            PrintWriter pr=new PrintWriter(client.getOutputStream(),true);
            int index=0,rws=8;
            String buf[]=new String[8];
            String ch;
            while(true)
            {
                do
                {
                    int nf=Integer.parseInt(br.readLine());
                    if(nf<rws-1)
                    {
                        for(int i=0;i<nf;i++)
                        {
                            buf[index]=br.readLine();
                            System.out.println(index);
                            System.out.println(buf[index]);
                            index=(index +1)%rws;
                            System.out.println(index);
                        }
                        rws = rws - nf;                      
                        System.out.println("Acknowledge Sent To Sender");
                        pr.println(index);
                        rws=rws+nf;
                    }
                    else
                    {
                        break;
                    }
                    ch=br.readLine();
                }
                while(ch.equals("y"));
            }
        }
        catch(Exception e){}
    }
    public static void main(String arg[])
    {
        slidingReceiver r= new slidingReceiver();
        r.process();
    }
}

How to run:

  1. First run Sender program 
  2. Then next run Receiver program
  3. Give input from Sender side

Sender Side Output:

Enter the number of frame send to the receiver:
3
Enter the 3 Message send to the receiver
hi
good
evening
Acknowledge Received For the Frame3
Do You Want To Continue(y/n)
n

Receiver Side Output:

0 
hi 
1 
1 
good 
2 
2 
evening 
3 
Acknowledge Sent To Sender 


Multicast Sender

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

class MulticastSender implements Runnable
{
    static int port;
    static MulticastSocket ms;
    static String group;
    static int status = 0 ;
    MulticastSender() throws Exception
    {
        port = 5000;
        group = "225.4.5.6";
        ms = new MulticastSocket(4000);
    }
    public void run()
    {
        while(true)
        {
            try
            {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                byte sbuf[] = new byte[2000];
                sbuf = br.readLine().getBytes();
                DatagramPacket spack = new DatagramPacket(sbuf, sbuf.length,
                                                 InetAddress.getByName(group), port);
                ms.send(spack);                                                
               
            }catch(Exception e){ System.out.println(e);}
        }
    }
    public static void main(String args[]) throws Exception
    {
        MulticastSender sender = new MulticastSender();
        Thread t = new Thread(sender);
               
        ms.joinGroup(InetAddress.getByName(group));
        t.start();
       
        int count =0;
        byte rbuf[] = new byte[1000];
        while(true)
        {
            DatagramPacket rpack =new DatagramPacket(rbuf,rbuf.length);
            ms.receive(rpack);
            String str = new String(rpack.getData(),0,rpack.getLength());
            if(str.equalsIgnoreCase("join"))
            {
                count++;
                System.out.println("Client joined the group");
                System.out.println("\ncurrently " + count + " client/clients is/are in the group");
               
            }
            else if(str.equalsIgnoreCase("leave"))
            {
                count--;
                System.out.println("Client left the group");
                System.out.println("\ncurrently " + count + " client/clients is/are in the group");
                if(count == 0)
                {
                    ms.leaveGroup(InetAddress.getByName(group));
                    ms.close();
                    break;
                }
            }
        }
    }
}

Multicast Receiver

import java.io.*;
import java.net.*;
class MulticastReceiver implements Runnable
{
    static MulticastSocket ms;
    static int port;
    static int status = 0;
    MulticastReceiver() throws Exception
    {
        port = 5000;
        ms= new MulticastSocket(port);
    }
    public void run()
    {
        while(true)
        {
            try
            {
                byte rbuf[] = new byte[2000];
                DatagramPacket  rpack = new DatagramPacket(rbuf,rbuf.length);
                if (status == 1)
                {
                    ms.close();
                    break;
                }
                ms.receive(rpack);
                System.out.println(new String(rpack.getData(),0,rpack.getLength()));
            }catch(Exception e){System.out.println(e);}
        }
    }
   
    public static void main(String args[]) throws Exception
    {
        MulticastReceiver mr =new MulticastReceiver();
        Thread t = new Thread(mr);
       
        String group = "225.4.5.6";
      
        System.out.println("Do you wish to join the group?");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        if(br.readLine().equalsIgnoreCase("yes"))
        {
            ms.joinGroup(InetAddress.getByName(group));
           
            byte sbuf[] = new byte[2000];
            sbuf = "join".getBytes();
            DatagramPacket spack = new DatagramPacket(sbuf, sbuf.length,InetAddress.getByName("localhost"),4000);
            ms.send(spack);
          
            System.out.println("Joined the group");
            t.start();
            while(true)
            {
                if(br.readLine().equalsIgnoreCase("leave"))
                {
                    status = 1;
                    byte sbuf2[] = new byte[2000];
                    sbuf2 = "leave".getBytes();
                    DatagramPacket spack2 = new DatagramPacket(sbuf2,sbuf2.length,InetAddress.getByName("localhost"),4000);
                    ms.send(spack2);
                    ms.leaveGroup(InetAddress.getByName(group));
                    break;
                }
            }
        }
    }
}

How to run:

  1. First run Receiver program 
  2. Then next run Sender program in single or multiple times
  3. Give input "yes" from Receiver side
  4. Next give input in Sender side

Receiver Side Output:

Do you wish to join the group?
yes
Joined the group
hi

Sender Side Output:

Client joined the group

currently 1 client/clients is/are in the group
hi

Client Side Program

import java.io.*;
import java.net.*;
class TCPClient {

  public static void main(String args[]) throws Exception
  {
       String sentence;
       String modifiedSentence;
        BufferedReader inFromUser =
         new BufferedReader(new InputStreamReader(System.in));

      Socket clientSocket = new Socket("127.0.0.1", 6324);

        DataOutputStream outToServer =
          new DataOutputStream(clientSocket.getOutputStream());
   
       BufferedReader inFromServer =
          new BufferedReader(new
            InputStreamReader(clientSocket.getInputStream()));

        sentence = inFromUser.readLine();
        outToServer.writeBytes(sentence + '\n');

        modifiedSentence = inFromServer.readLine();

        System.out.println("FROM SERVER: " + modifiedSentence);

        clientSocket.close();
                 
    }
}

Server Side Program

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

class TCPServer {

  public static void main(String args[]) throws Exception
    {
      String clientSentence;
      String capitalizedSentence;

      ServerSocket welcomeSocket = new ServerSocket(6324);
 
      while(true) {
 
            Socket connectionSocket = welcomeSocket.accept();

           BufferedReader inFromClient =
              new BufferedReader(new
              InputStreamReader(connectionSocket.getInputStream()));

          
DataOutputStream  outToClient =
             new DataOutputStream(connectionSocket.getOutputStream());

           clientSentence = inFromClient.readLine();
           System.out.println("FROM client:" + clientSentence); 
           capitalizedSentence = clientSentence.toUpperCase() + '\n';
           outToClient.writeBytes(capitalizedSentence);
        }
    }
}

How to run:

  1. First run server program then next run client program
  2. Give input from client side
  3. Next give input in server side

Client Side Output:

hi
FROM SERVER: HI

Server Side Output:

FROM client:hi
hi da
Welcome to My Blog

Translate

Popular Post

Total Pageviews

- Copyright © Learning Java Program - Powered by Blogger -