Friday, March 8, 2013
Today I am going to post programs related with networking. Actually today I am going to implement a connectionless packet delivery service using datagram packets. Each machine will be routed from one machine to another solely on the information contained in the packet. But to deliver this datagrams we will have to open a datagram socket programatically. This socket can be used for both sending and receiving datagrams. But to deliver packets we must know the IP address and port number. The following classes will be used for this -->
java.net.InetAddress : This class is used to get the IP address based on the host name using its static method getByName() .
java.net.DatagramSocket : This class represents a socket for sending and receiving datagram packets. Where possible, a newly constructed DatagramSocket has the SO_BROADCAST socket option enabled so as to allow the transmission of broadcast datagrams. In order to receive broadcast packets a DatagramSocket should be bound to the wildcard address.
java.net.DatagramPacket : Each message is routed from one machine to another based solely on information contained within that packet. Multiple packets sent from one machine to another might be routed differently, and might arrive in any order. Packet delivery is not guaranteed.
--------------------------------------------------------------------------------------------------------------------------
Java Source Code
--------------------------------------------------------------------------------------------------------------------------
/* THE RECEIVER CODE */

import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.util.Scanner;

public class Receiver{
   public static void main(String[] args)throws Exception{
     String str="";
     Scanner sc=new Scanner(System.in);
     System.out.print("Enter port : ");
     int PORT=sc.nextInt(); //receiver port
     DatagramSocket rsock=new DatagramSocket(PORT); //creating socket
     do{
       byte buf[]=new byte[512];
       DatagramPacket packet=new DatagramPacket(buf,512);
       rsock.receive(packet); //receiving packets
       str=new String(buf); //converting to string
       System.out.println("Received : "+str);
     }while(!str.contains("bye")); //goes on till bye is sent

     rsock.close();  //closing socket
   }
}

/* THE SENDER CODE */

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetAddress;

public class Sender{
   public static void main(String[] args)throws Exception{
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     DatagramSocket ssock=new DatagramSocket(); //binding socket to any 
available port
     System.out.print("Enter host name : ");
     String str=br.readLine();  //getting host-name
     System.out.print("Enter receiver's port : ");
     int PORT=Integer.parseInt(br.readLine()); //getting receiver port
     InetAddress addr=InetAddress.getByName(str); //getting IP of receiver

     do{
       System.out.print("Sending : ");
       str=br.readLine(); //getting data to be sent
       byte buf[]=str.getBytes();
       //creating packet with receiver info inside packet
       DatagramPacket packet=new DatagramPacket(buf,buf.length,addr,PORT);
       ssock.send(packet);  //sending packet
     }while(!str.equals("bye"));
     
     ssock.close();  //closing socket
   }
}
--------------------------------------------------------------------------------------------------------------------------
Output
--------------------------------------------------------------------------------------------------------------------------
Screenshots of output
Receiver
Sender









--------------------------------------------------------------------------------------------------------------------------
Download Links
--------------------------------------------------------------------------------------------------------------------------
DOWNLOAD the source package from Mediafire
DOWNLOAD the source package from 4shared

1 comment:

  1. Thank you for sharing. I think it’s very important to do your research before you choose a courier service. I was referred a delivery service Minneapolis and not only were they affordable they were really nice!

    ReplyDelete

Total Pageviews

Followers


Labels

Popular Posts

free counters