Java Programming 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 Programming 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 Programming Gets Current Date

    Java Programming Finds Character Vowel or Consonent

    Java Programming HCF and LCM Computation

    Java Programming Sum of Command Line Integer Arguments

    Java Programming Multiplication of Command Line Integer Arguments

    Java Programming Multiplication of Command Line Floating Point Numeric Arguments

    Java Programming String Contains or Not

    Java Programming Gets Grade Description using Switch

    Java Programming CSV File Reader

    Java Programming Character Frequency Count in String using for each

    Java Programming Finds Min from Integer Array by Passing Array to Method

    Java Programming Linear Search

    Java Programming Binary Search

    Java Programming Ternary Search

    Java Programming Generates Range of Numbers

    Java Programming Generates Range of Characters

    Java Programming Computes Square Root Value

    Java Programming Checks Number is Positive or Negative

    Java Programming Checks Number is Odd or Even

    Java Programming Computes Plot Area

    Java Programming Convert Number of Days into Years

    Java Programming Checks a Year is Leap Year, Century Year or Not

    Java Programming Checks a Character is Digit, Letter or neither digit nor letter

    Java Programming Checks a Number is Palindrome or not

    Java Programming Sum of Two Matrix

    Java Programming Power Computation

    Java Programming Checks Number is an Armstrong Number or not

    Java Programming Temperature Unit Conversions

    Java Programming Generates Random Numbers in Specified Range

    Java Programming Computes Sum of Digits and Product of Digits

    Java Programming Computes Reverse Number

    Java Programming Computes Factorial Value

    Java Programming Checks Prime Number or not

    Java Programming Computes Harmonic Series

    Java Programming Generates Floyd's Triangle

    Java Programming Reverses String

    Java Programming Checks Palindrome String or not

    Java Programming Opens Notepad

    Java Programming Searches String using RegEx Pattern

    Java Programming Searches Word in String

    Java Programming Gets System Environment Variables

    Java Programming Gets IP Address of Server Name

    Java Programming Arrays Sort and Reverse using sort method

    Java Programming Bubble Sorting

    Java Programming Selection Sorting

    Java Programming Insertion Sorting

    Java Programming Merge Sorting

    Java Programming Quick Sorting

    Java Programming Counting Sort

    Java Programming Radix Sorting

    Java Programming Sorting Array of Strings

    Java Programming String Characters Sorting

    Java Programming Sum of First N Numbers

    Java Programming Product of First N Numbers

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

    Free online programming tutorials

    Email Facebook Google LinkedIn Twitter
    ^