Sending and receiving message as part of DatagramPacket using JAVA DatagramSocket ( JAVA DatagramSocket Client and Server Example )

 $ vim DatagramSenderClient.java 
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class DatagramSenderClient{
        private static String remoteServerAddr = "192.168.1.102";
        private static int remoteServerPort = 5555;

        public static void main(String[] args) throws Exception {
                DatagramSocket localSocket = new DatagramSocket();

                String message = "This is string sent from DatagramSenderClient.java Client";
                InetAddress remoteServerInetAddr = InetAddress.getByName(remoteServerAddr);
                DatagramPacket dataGramPacket = new DatagramPacket(message.getBytes(), message.length(), remoteServerInetAddr, remoteServerPort);

                localSocket.send(dataGramPacket);
                localSocket.close();
        }

}

compile the client program as, [ Note: if you don’t have JAVA installed, follow “How to Install Java using apt-get command on Ubuntu” ]

 $ javac DatagramSenderClient.java 

Now, lets write a server program which will receive the data sent from the client.

 $ vim DatagramReceiverServer.java 
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class DatagramReceiverServer {
        private static int remoteServerPort = 5555;

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

                DatagramSocket localServerSocket = new DatagramSocket(remoteServerPort);
                byte[] buf = new byte[1024];

                DatagramPacket datagramReceiverPacket = new DatagramPacket(buf, 1024);
                localServerSocket.receive(datagramReceiverPacket);

                String receivedMessage = new String(datagramReceiverPacket.getData(), 0, datagramReceiverPacket.getLength());
                System.out.println(receivedMessage);
                localServerSocket.close();
        }

}

compile the server as,

 $ javac DatagramReceiverServer.java 

Now, once client and server is successfully compiled, lets run the server program on one terminal as,

 $ java DatagramReceiverServer 

Now, open another terminal to run the client program as,

 $ java DatagramSenderClient 

once you press ENTER for above command which executes the client program to send the message to server, we will see the message printed on terminal where server was running as,

 $ java DatagramReceiverServer
This is string sent from DatagramSenderClient.java Client

NOTE: if you can also run the client and server program of different ubuntu machines.

Android Android Commands Android Java Applications Application Libraries Bash / Shell Scripts Bluetooth driver Build Frameworks Commands and Packages Core Kernel C Programs Development Environment Setup Documents / Books Errors & Failures File Systems Framebuffer / Display Driver git Go Language Programs Hardware Platforms Home JAVA Programs Kernel & Device Drivers Kernel Booting and Porting Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL NDK / Middleware / HAL Network Driver OS Concepts PHP Procfs Filesystem Programming Languages RaspberryPi Scripting and Automation Search Engine Optimisation ( SEO ) Socurce Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Userspace Utilities Web design and development Wordpress Yocto / Bitbake / Openembedded

Leave a Reply