Skip to main content

Java Socket Basics(Socket Programming in Java) Part-2(UDP)

Hi friends,

We are going to discuss about UDP Socket Programming. In previous post we discussed about the differences between TCP & UDP and the sample example of TCP Socket Programming.

Below is the sample example of chat application using UDP Socket Programming.

UDP Sample:- We are going to create an small example which contains two classes.
  1. UdpServer.java:- This is a server class. Means this class will serve the purpose of socket connection. DatagramSocket is the java class and serve the purpose of Server and Client both. The overloaded constructor of DatagramSocket class matters. DatagramPacket is the java class which is responsible to transmit the data/packet over the network from server to client and vice-versa.
  2. UdpClient.java:- This is client class. This serves the purpose of client which will communicate to server and send data to server and receive the data sent by server.
UdpServer.java
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.Scanner;

public class UdpServer {

 public static void main(String[] args) {
  byte[] receiveBytes = new byte[256];
  final int SERVER_PORT = 8080;
  System.out.println("Server started. Waiting for client message...");
  try (DatagramSocket ds = new DatagramSocket(SERVER_PORT); Scanner sc = new Scanner(System.in);) {
   while (!ds.isClosed()) {
    // Construct Datagram packet to receive message
    DatagramPacket dp = new DatagramPacket(receiveBytes, receiveBytes.length);
    ds.receive(dp);
    String dataString = new String(dp.getData(), "UTF-8");
    System.out.println("Client Says:" + dataString);
    String input = sc.nextLine();
    // Construct Datagram packet to send message
    DatagramPacket sendPacket = new DatagramPacket(input.getBytes(), input.getBytes().length,
      dp.getAddress(), dp.getPort());
    ds.send(sendPacket);
   }
   ds.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}











UdpClient.java

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;

public class UdpClient {

 public static void main(String[] args) {
  byte[] receiveBytes = new byte[256];
  final String TERMINATE = "bye";
  final int SERVER_PORT = 8080;
  System.out.println("Client started. Type a message and hit Enter key to send the message to server.");
  try (Scanner sc = new Scanner(System.in); DatagramSocket ds = new DatagramSocket();) {
   // Get server address
   final InetAddress SERVER_ADDRESS = InetAddress.getLocalHost();
   DatagramPacket dataPacket = null;
   while (!ds.isClosed()) {
    String input = sc.nextLine();
    // Terminate the client if user says "bye"
    if (input.trim().equalsIgnoreCase(TERMINATE)) {
     break;
    }
    // Construct Datagram packet to send message
    dataPacket = new DatagramPacket(input.getBytes(), input.getBytes().length, SERVER_ADDRESS, SERVER_PORT);
    ds.send(dataPacket);
    // Construct Datagram packet to receive message
    dataPacket = new DatagramPacket(receiveBytes, receiveBytes.length);
    ds.receive(dataPacket);
    System.out.println("Server Says:" + new String(receiveBytes, "UTF-8"));
   }
  } catch (SocketException | UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

This example works as Client->Server and Server->Client mechanism. Means this example describes two way communication between Client and Server. This is a simple chat application.

First compile and run UdpServer class and then UdpClient class.



Hope this will help you. Suggestions are most welcome. Keep visiting my blog :)

Comments

Post a Comment

You are responsible person and please write responsibly

Popular posts from this blog

JavaFX WebView- Creating Browser Sample

Hi Friends, In this post, i am going to give an overview about JavaFX WebView . This is an embedded browser component which is based on WebKit . If allow you to use Css, JavaScript, HTML5 and more to customise your embedded browser. The embedded browser enables you to perform the following tasks in your JavaFX applications: Render HTML content from local and remote URLs Obtain Web history Execute JavaScript commands Perform upcalls from JavaScript to JavaFX Manage web pop-up windows Apply effects to the embedded browser  I am going to provide and explain you a sample example to create your embedded browser. This is a JavaFX sample example. if you want to take an introduction about JavaFX please visit my previous blog . I have use IntelliJ Idea IDE for this example. You can visit this link  to understand how to create JavaFX application. I am attaching the project structure image below- In this sample- we have two java class. First

Working with MPAndroidChart (how to create Bar Chart using MPAndroidChart)

Hi Friends, In this tutorial i am going to show, "How to create Bar Chart using MPAndroidChart". There is a lot of libraries for creating charts in android like AChartEngine, MpAndroidChart, AndroidPlot etc. Your first question may be, Why MPAndroidChart. So MpAndroidChart provides better animation functionality and easy to use in comparision. Using  MPAndroidChart library  we can draw a: ·          Simple Bar Chart ·          Grouped Bar Chart ·          Horizontal Bar Chart ·          Simple Line Chart ·          Line Chart with Cubic Lines ·          Grouped Line Chart ·          Combined Line and Bar Chart ·          Pie Chart ·          Scatter Chart ·          Candlestick Chart ·          Radar Chart Here we will create Simple Bar Chart with multiple color based on ranging. Ok We start with coding part now. First of all create your project in Android Studio and add gradle dependency for  MPAndroidChart library  into y

app-policy

PRIVACY POLICY Last updated April 19, 2023 This privacy notice for Team CoderzDuniya ( " Company ," " we ," " us ," or " our " ), describes how and why we might collect, store, use, and/or share ( " process " ) your information when you use our services ( " Services " ), such as when you: Download and use our mobile application ( Revenue Calculator) , or any other application of ours that links to this privacy notice Engage with us in other related ways, including any sales, marketing, or events Questions or concerns?  Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at droidamar007@gmail.com . SUMMARY OF KEY POINTS This summary provides key points from our privacy notice, but you can find out more details about any of these t