Java Program for Datagram Server and Client

What is datagram in java program?

Datagram are bundles of information shared between the machines in network.

How to implement datagram in java program?

Java implements datagram on top of UDP protocol using two classes.
  • DatagramPacket
  • DatagramSocket

What is DatagramPacket?

DatagramPacket specifies the buffer that will receive data and size of the packet.

What is DatagramSocket?

DatagramSocket: speciies the target address and port to determine where the data in the packet will be sent.

How to implement Datagram Server and Client in Java program?

import java.net.*;                                                              
                                                                                
class DatagramTest {                                                            
                                                                                
 public static int serverPort = 887;                                            
 public static int clientPort = 888;                                            
                                                                                
 public static DatagramSocket ds;                                               
 public static byte buffer[] = new byte[1024];                                  
                                                                                
 public static void serverMethod() throws Exception {                           
  int seek = 0;                                                                 
  while(true) {                                                                 
   int ch = System.in.read();                                                   
   if (ch == -1) {                                                              
    System.out.println("Server exists!");                                       
    return;                                                                     
   }                                                                            
   else if (ch == '\n') {                                                       
    ds.send(new DatagramPacket(buffer, seek, InetAddress.getLocalHost(), clientPort));
    seek = 0;                                                                   
    break;                                                                      
   }                                                                            
   else {                                                                       
    buffer[seek++] = (byte) ch;                                                 
   }                                                                            
  }                                                                             
 }                                                                              
                                                                                
 public static void clientMethod() throws Exception {                           
  while(true) {                                                                 
   DatagramPacket dp = new DatagramPacket(buffer, buffer.length);               
   ds.receive(dp);                                                              
   System.out.println(new String(dp.getData(), 0, dp.getLength()));             
  }                                                                             
 }                                                                              
                                                                                
 public static void main(String args[]) throws Exception {                      
  if(args[0].equals( "server")) {                                                       
   ds = new DatagramSocket(serverPort);                                         
   serverMethod();                                                              
  } else {                                                                      
    ds = new DatagramSocket(clientPort);                                        
    clientMethod();                                                             
  }                                                                             
 }                                                                              
}   
Output:
//Client
step1: $ java DatagramTest client 
step4: hello world!
//Server
step2: $ java DatagramTest server
//once pressed enter key, data will be sent to client
step3: hello world!
  • If DatagramTest.java program throws exception like this, change user as administrator or root on the machine.
    $ java DatagramTest
    Exception in thread "main" java.net.BindException: Permission denied (Bind failed)
    	at java.net.PlainDatagramSocketImpl.bind0(Native Method)
    	at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:93)
    	at java.net.DatagramSocket.bind(DatagramSocket.java:392)
    	at java.net.DatagramSocket.(DatagramSocket.java:242)
    	at java.net.DatagramSocket.(DatagramSocket.java:299)
    	at java.net.DatagramSocket.(DatagramSocket.java:271)
    	at DatagramTest.main(DatagramTest.java:43)
    
    

    Java Examples

    GCD and Rational Number Java Program

    Java Queue Program using exception

    Java Stack Program using exception

    Addition of three integers java program

    Biggest of three integers java program

    Fibonacci numbers java program

    Arithmetic Operations Menu java program

    Second Smallest Element In Array Java Program

    Transpose Of A Matrix Java Program

    Java Program to Display triangle of stars (*)

    Java Programming Prints Product Tables

    Java Program to Display triangle of numbers

    Java Program to Get Current Date

    Java Program to Find Character Vowel or Consonent

    Java Program to Compute HCF and LCM

    Java Program to Sum the Command Line Integer Arguments

    Java Programm to Multiply the Command Line Integer Arguments

    Java Program to Find Multiplication of Command Line Floating Point Numeric Arguments

    Java Program to Check String Contains or Not

    Java Program to Get Grade Description using Switch

    Java Program for CSV File Reader

    Java Program to Find Character Frequency Count in String using for each

    Java Program to Find Min from Integer Array by Passing Array to Method

    Java Program Linear Search

    Binary Search Java Program

    Ternary Search Java Program

    Java Program to Generate Range of Numbers

    Java Program to Generate Range of Characters

    Java Program to Compute Square Root Value

    Java Program to Check Number is Positive or Negative

    Java Program to Check Number is Odd or Even

    Java Program to Compute Plot Area

    Java Program to Convert Number of Days into Years

    Java Program to Check a Year is Leap Year, Century Year or Not

    Java Program to Check a Character is Digit, Letter or neither digit nor letter

    Java Program to Check a Number is Palindrome or not

    Java Program to Sum Two Matrix

    Java Program to Compute Power

    Java Program to Check Number is an Armstrong Number or not

    Java Program for Temperature Unit Conversions

    Java Program to Generate Random Numbers in Specified Range

    Java Program to Compute Sum of Digits and Product of Digits

    Java Program to Compute Reverse Number

    Java Programming Computes Factorial Value

    Java Programming Checks Prime Number or not

    Java Program to Compute Harmonic Series

    Java Program Generate Floyd's Triangle

    Java Program to Reverse String

    Java Program to Check Palindrome String or not

    Java Program to Open Notepad

    Java Program to Search String using RegEx Pattern

    Java Program to Search Word in String

    Java Program to Get System Environment Variables

    Java Program to Get IP Address of Server Name

    Java Program for Arrays Sorting and Reverse using sort method

    Java Program for Bubble Sorting

    Java Program for Selection Sorting

    Java Program for Insertion Sorting

    Java Program for Merge Sorting

    Java Program for Quick Sorting

    Java Program for Counting Sort

    Java Program for Radix Sorting

    Java Program for Sorting Array of Strings

    Java Program for String Characters Sorting

    Java Program to Sum First N Numbers

    Java Program to Product First N Numbers

    Java Program to get URL details

    Java Program to get URL HTML Content

    Java Program to get URL details

    Java Program to get URL HTML Content

  • Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

    Email Facebook Google LinkedIn Twitter
    ^