importjava.net.*;publicclassUDPClient{privatestaticfinalintport=9999;publicstaticvoidmain(String[]args)throwsException{// In client, port number isn't necessary in DatagramSocket.DatagramSocketds=newDatagramSocket();Stringmsg="Hello Server !";// String is needed to be converted to bytes array.byte[]msgByteArray=msg.getBytes();// As I'm testing on my own system, I am referring to localhost.InetAddressaddress=InetAddress.getLocalHost();// At sender side, DatagramPacket accepts four parameters while sending :// i. byte array of message// ii. length of byte array// iii. IP address// iv. Port numberDatagramPacketdp=newDatagramPacket(msgByteArray,msgByteArray.length,address,port);ds.send(dp);ds.close();}}
Server Side Implementation
importjava.net.*;publicclassUDPServer{privatestaticfinalintport=9999;publicstaticvoidmain(String[]args)throwsException{// In server, port number is essential.DatagramSocketds=newDatagramSocket(port);// We are assigning the message into the empty byte array.byte[]emptybyteArray=newbyte[1024];// At receiving side, DatagramPacket accepts two parameters only.// i. Empty byte array// ii. Length of empty byte arrayDatagramPacketdp=newDatagramPacket(emptybyteArray,emptybyteArray.length);ds.receive(dp);// As the received message is in bytes, we need to convert into String.// Second and third parameter in String constructor limit the message upto the// given length only.Stringmsg=newString(dp.getData(),0,dp.getLength());System.out.println("Message : "+msg);ds.close();}}