https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_23f1ae74c634d7e5e0a067c22b7a8c2d79c3ffd9a3b9395fc82c1b3b99635552b994f1f72f532f28ceaff1ea054ea026cd488cd62fa03a4ad91d212b5f3c5a72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_451c3884f51125f7687e5bb07cfab033c04cb7174c33f93213b2af4bad2af13cf48b92a7fa95fc86d7d436f355938a3ac50aa119cdb7c9b6d5a52815c3e6033e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_8ae58530a8e7138eb5aab335d397385cde40bb50d5b896a20f2c976dc3bb3b526fb781f4d14a6dcf41262239cf3c8705c0960d36e1ba711ae8fb44824fd49613.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_268c9bba6ba649318f0da28c37b09a9bbfa371210f9b6b52faa7fd8ae94abf6b3c3bfeb5df5705c93495ce1152ca58aeabc435d6c6c1bd959025165c3f50e086.js
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Featured
    • Advanced Python Topics
    • AWS Learning Roadmap
    • JWT Complete Guide
    • Git CheatSheet
  • Explore
    • Programming
    • Development
      • microservices
      • Front End
    • Database
    • DevOps
    • Productivity
    • Tutorial Series
      • C# LinQ Tutorials
      • PHP Tutorials
  • Dev Tools
    • JSON Formatter
    • Diff Checker
    • JWT Decoder
    • JWT Generator
    • Base64 Converter
    • Data Format Converter
    • QR Code Generator
    • Javascript Minifier
    • CSS Minifier
    • Text Analyzer
  • About
  • Contact
CodeSamplez.com

CodeSamplez.com

Programming And Development Resources

You are here: Home / Programming / UDP Socket Programming In Java: A Beginners Guide

UDP Socket Programming In Java: A Beginners Guide

Updated May 3, 2025 by Rana Ahsan 1 Comment ⏰ 9 minutes

JAVA UDP Programming

Have you ever wondered how multiplayer games send data so quickly? Or how video streaming works behind the scenes? Well, you’re about to discover one of networking’s most powerful tools – UDP! In this guide, I’ll walk you through everything you need to know about UDP socket programming in Java, from absolute basics to creating your own applications.

What is UDP and Why Should You Care?

UDP (User Datagram Protocol) is often overshadowed by its more reliable cousin TCP, but there are TONS of situations where UDP absolutely shines. While TCP ensures every piece of data arrives perfectly intact (great for downloading files or browsing websites), UDP sacrifices some reliability for blazing-fast speed.

Here’s where UDP dominates:

  • Multiplayer gaming – When milliseconds matter
  • Live video streaming – When continuous flow beats perfect delivery
  • Voice over IP (VoIP) – When real-time matters more than perfection
  • IoT device communication – When bandwidth is limited
  • Private network applications – When the packet loss risk is minimal

As a Java developer, adding UDP to your toolkit opens up incredible possibilities for creating responsive, real-time applications.

Understanding UDP Socket Basics

Before diving into code, let’s understand what makes UDP different:

  1. Connectionless – UDP doesn’t establish a connection before sending data; it just fires packets at their destination
  2. Unreliable – No guarantees packets will arrive (or arrive in order)
  3. Lightweight – Minimal overhead means faster transmission
  4. Simple – Less complex than TCP, making implementation straightforward

These characteristics make UDP perfect when speed trumps perfect reliability. Now let’s see how Java implements these concepts.

Building a Basic UDP Client in Java

To create a UDP client, we need to:

  1. Create a DatagramSocket
  2. Prepare our data in a DatagramPacket
  3. Send the packet to a specific address/port
  4. Optionally wait for a response

Here’s a complete example that sends a message and waits for a reply:

import java.net.*;

public class UDPClient {
    public static void main(String[] args) {
        DatagramSocket socket = null;
        
        try {
            // Create socket
            socket = new DatagramSocket();
            
            // Prepare message
            String message = "Hello World via UDP in Java!";
            byte[] sendData = message.getBytes();
            
            // Set destination address
            InetAddress serverAddress = InetAddress.getByName("localhost");
            int serverPort = 9876;
            
            // Create and send packet
            DatagramPacket sendPacket = new DatagramPacket(
                sendData, 
                sendData.length, 
                serverAddress, 
                serverPort
            );
            socket.send(sendPacket);
            System.out.println("Message sent to server!");
            
            // Prepare to receive response
            byte[] receiveData = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(
                receiveData, 
                receiveData.length
            );
            
            // Set timeout and receive response
            socket.setSoTimeout(5000); <em>// 5 second timeout</em>
            socket.receive(receivePacket);
            
            // Process response
            String response = new String(
                receivePacket.getData(), 
                0, 
                receivePacket.getLength()
            );
            System.out.println("Response from server: " + response);
            
        } catch (SocketTimeoutException e) {
            System.out.println("Timeout reached! Server did not respond.");
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
            e.printStackTrace();
        } finally {
            // Always close the socket
            if (socket != null && !socket.isClosed()) {
                socket.close();
            }
        }
    }
}Code language: JavaScript (javascript)

Notice how we’re creating a packet with our message, specifying where to send it, and then launching it into the network. Simple yet powerful!

Creating a UDP Server in Java

Now let’s build the server side that will receive client messages and send back responses:

import java.net.*;

public class UDPServer {
    public static void main(String[] args) {
        DatagramSocket socket = null;
        
        try {
            // Create socket bound to specific port
            int port = 9876;
            socket = new DatagramSocket(port);
            System.out.println("UDP Server running on port " + port);
            
            // Server runs forever
            while (true) {
                // Prepare to receive data
                byte[] receiveData = new byte[1024];
                DatagramPacket receivePacket = new DatagramPacket(
                    receiveData, 
                    receiveData.length
                );
                
                // Block until packet received
                System.out.println("Waiting for UDP packets...");
                socket.receive(receivePacket);
                
                // Process received data
                String clientMessage = new String(
                    receivePacket.getData(), 
                    0, 
                    receivePacket.getLength()
                );
                
                InetAddress clientAddress = receivePacket.getAddress();
                int clientPort = receivePacket.getPort();
                
                System.out.println("Received from " + clientAddress + 
                                   ":" + clientPort + " -> " + clientMessage);
                
                // Prepare response
                String response = "Echo: " + clientMessage;
                byte[] sendData = response.getBytes();
                
                // Send response back to the same client
                DatagramPacket sendPacket = new DatagramPacket(
                    sendData, 
                    sendData.length, 
                    clientAddress, 
                    clientPort
                );
                socket.send(sendPacket);
                System.out.println("Response sent!");
            }
            
        } catch (Exception e) {
            System.out.println("Server error: " + e.getMessage());
            e.printStackTrace();
        } finally {
            // Close socket if we ever break out of the loop
            if (socket != null && !socket.isClosed()) {
                socket.close();
            }
        }
    }
}Code language: JavaScript (javascript)

The server’s job is straightforward but critical:

  1. Create a socket bound to a specific port
  2. Wait for incoming packets in an endless loop
  3. Process each packet when received
  4. Send a response back to the client
  5. Return to waiting for the next packet

This creates a perpetual service that is ready to handle any client requests that arrive.

Taking It Further: UDP Multicast Programming

Sometimes, you need to send the same message to multiple recipients without duplicating network traffic. That’s where multicast comes in—it’s like a radio broadcast: anyone tuned to the right frequency gets the message.

Here’s how to implement multicast in Java:

Multicast Sender

import java.net.*;

public class MulticastSender {
    public static void main(String[] args) {
        DatagramSocket socket = null;
        
        try {
            // Create regular datagram socket
            socket = new DatagramSocket();
            
            // Prepare multicast message
            String message = "Hello everyone!";
            byte[] sendData = message.getBytes();
            
            // Use multicast address (must be in range 224.0.0.0 to 239.255.255.255)
            InetAddress multicastAddress = InetAddress.getByName("230.0.0.1");
            int port = 4321;
            
            // Create and send packet to multicast address
            DatagramPacket packet = new DatagramPacket(
                sendData, 
                sendData.length, 
                multicastAddress, 
                port
            );
            
            socket.send(packet);
            System.out.println("Multicast message sent!");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (socket != null) {
                socket.close();
            }
        }
    }
}Code language: JavaScript (javascript)

Multicast Receiver

import java.net.*;

public class MulticastReceiver {
    public static void main(String[] args) {
        MulticastSocket socket = null;
        
        try {
            // Create multicast socket on specific port
            int port = 4321;
            socket = new MulticastSocket(port);
            
            // Join multicast group
            InetAddress multicastAddress = InetAddress.getByName("230.0.0.1");
            socket.joinGroup(multicastAddress);
            
            System.out.println("Multicast Receiver running on port " + port);
            System.out.println("Joined multicast group " + multicastAddress);
            
            // Loop forever to receive messages
            while (true) {
                byte[] receiveData = new byte[1024];
                DatagramPacket packet = new DatagramPacket(
                    receiveData, 
                    receiveData.length
                );
                
                socket.receive(packet);
                
                String message = new String(
                    packet.getData(), 
                    0, 
                    packet.getLength()
                );
                
                System.out.println("Received multicast message: " + message);
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (socket != null) {
                try {
                    socket.leaveGroup(InetAddress.getByName("230.0.0.1"));
                } catch (Exception e) {
                    // Ignore
                }
                socket.close();
            }
        }
    }
}Code language: JavaScript (javascript)

The key difference with multicast is that receivers must explicitly join a multicast group to receive messages. However, multiple receivers can all listen for the same multicast messages.

Advanced Features in Modern Java UDP Socket Programming

Since Java’s initial release, several improvements have been made to UDP socket programming:

1. NIO DatagramChannel (Java NIO)

For high-performance applications, Java NIO’s DatagramChannel provides non-blocking UDP operations:

import java.net.*;
import java.nio.*;
import java.nio.channels.*;

public class NIOUDPExample {
    public static void main(String[] args) throws Exception {
        // Open and bind a datagram channel
        DatagramChannel channel = DatagramChannel.open();
        channel.bind(new InetSocketAddress(9876));
        
        // Set to non-blocking mode
        channel.configureBlocking(false);
        
        // Create buffer for data
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        
        while (true) {
            // Clear buffer for reuse
            buffer.clear();
            
            // Try to receive - returns null if no datagram available
            SocketAddress clientAddress = channel.receive(buffer);
            
            if (clientAddress != null) {
                // We received something!
                buffer.flip();
                System.out.println("Received: " + new String(buffer.array(), 0, buffer.limit()));
                
                // Echo it back
                channel.send(buffer, clientAddress);
            }
            
            // Do other tasks while waiting for datagrams
            System.out.println("Processing other tasks...");
            Thread.sleep(1000);
        }
    }
}Code language: JavaScript (javascript)

2. Socket Options for Fine-Tuning

Modern Java applications can fine-tune UDP behavior:

DatagramSocket socket = new DatagramSocket();

// Increase buffer sizes for high-throughput applications
socket.setReceiveBufferSize(262144);
socket.setSendBufferSize(262144);

// Enable broadcast capability
socket.setBroadcast(true);

// Control how long packets live in the network
socket.setTrafficClass(0x10); <em>// IPTOS_LOWDELAY</em>

// Reuse address to avoid "Address already in use" issues during quick restarts
socket.setReuseAddress(true);Code language: JavaScript (javascript)

3. Using Java’s Built-in Record Class for Cleaner Code (Java 16+)

record UDPMessage(String content, InetAddress sender, int port) {
    public byte[] toBytes() {
        return content.getBytes();
    }
    
    public static UDPMessage fromPacket(DatagramPacket packet) {
        String content = new String(packet.getData(), 0, packet.getLength());
        return new UDPMessage(content, packet.getAddress(), packet.getPort());
    }
}Code language: JavaScript (javascript)

Common Challenges and Solutions in UDP Programming

1. Packet Size Limitations

UDP datagrams have practical size limits (~65KB maximum, but usually much smaller):

// Don't exceed MTU to avoid fragmentation
int maxSafePayloadSize = 508; <em>// Conservative safe value</em>

// For larger data, split into multiple packets
byte[] largeData = getVeryLargeData();
int offset = 0;

while (offset < largeData.length) {
    int chunkSize = Math.min(maxSafePayloadSize, largeData.length - offset);
    byte[] chunk = new byte[chunkSize];
    System.arraycopy(largeData, offset, chunk, 0, chunkSize);
    
    DatagramPacket packet = new DatagramPacket(chunk, chunkSize, destination, port);
    socket.send(packet);
    
    offset += chunkSize;
}Code language: JavaScript (javascript)

2. Handling Packet Loss

Since UDP doesn’t guarantee delivery, critical applications should implement their own reliability mechanisms:

// Simple acknowledgment system
int maxRetries = 5;
int retry = 0;
boolean ackReceived = false;

while (!ackReceived && retry < maxRetries) {
    // Send packet with sequence number
    String message = "DATA|" + sequenceNumber + "|Your actual data here";
    byte[] sendData = message.getBytes(); 
    
    DatagramPacket sendPacket = new DatagramPacket(
        sendData, sendData.length, serverAddress, serverPort);
    socket.send(sendPacket);
    
    // Wait for acknowledgment with timeout
    try {
        byte[] ackBuffer = new byte[1024];
        DatagramPacket ackPacket = new DatagramPacket(ackBuffer, ackBuffer.length);
        socket.setSoTimeout(1000); <em>// 1 second timeout</em>
        socket.receive(ackPacket);
        
        String ack = new String(ackPacket.getData(), 0, ackPacket.getLength());
        if (ack.equals("ACK|" + sequenceNumber)) {
            ackReceived = true;
            System.out.println("Acknowledgment received!");
        }
    } catch (SocketTimeoutException e) {
        retry++;
        System.out.println("Timeout, retrying... (" + retry + "/" + maxRetries + ")");
    }
}Code language: JavaScript (javascript)

3. Testing Network Conditions

When developing UDP applications, testing under various network conditions is crucial:

// Simulate packet loss (for testing only)
if (Math.random() < 0.2) { // 20% packet loss
    System.out.println("Simulating packet loss - not sending");
    return; // Skip sending this packet
}

// Simulate network latency (for testing only)
try {
    int artificialDelayMs = (int)(Math.random() * 200); <em>// 0-200ms delay</em>
    Thread.sleep(artificialDelayMs);
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}Code language: JavaScript (javascript)

When to Choose UDP Over TCP

Here’s a quick decision guide for when UDP might be the right choice

FeatureUDPTCP
Speed✅ Faster❌ Slower
Reliability❌ Not guaranteed✅ Guaranteed
Order preservation❌ Not preserved✅ Preserved
Connection overhead✅ None❌ Higher
Best forReal-time, high-speedData accuracy
Implementation complexity✅ Simpler❌ More complex

Conclusion

UDP socket programming in Java opens up incredible possibilities for real-time and high-performance network applications. While it requires handling some reliability issues yourself, the speed and simplicity make it perfect for many modern use cases.

I hope this guide has given you everything you need to build your own Java UDP applications. Whether you’re creating the next multiplayer game, streaming service, or IoT system, UDP’s efficiency and speed will serve you well!

Remember – UDP might not guarantee delivery, but it absolutely guarantees performance when you need it most.

Got questions about UDP programming in Java? Feel free to leave a comment below. Happy coding! 🚀

Recommended Resources

  • Java Network Programming, 4th Edition
  • Oracle’s Java Networking Documentation
  • Effective Java, 3rd Edition

Share if liked!

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pocket (Opens in new window) Pocket

You may also like


Discover more from CodeSamplez.com

Subscribe to get the latest posts sent to your email.

First Published On: December 19, 2014 Filed Under: Programming Tagged With: java, udp

About Rana Ahsan

Rana Ahsan is a seasoned software engineer and technology leader specialized in distributed systems and software architecture. With a Master’s in Software Engineering from Concordia University, his experience spans leading scalable architecture at Coursera and TopHat, contributing to open-source projects. This blog, CodeSamplez.com, showcases his passion for sharing practical insights on programming and distributed systems concepts and help educate others.
Github | X | LinkedIn

Reader Interactions

Comments

  1. Thomas Lee S says

    September 1, 2016 at 12:43 AM

    Thanks Rana for the writeup and the code. Quite useful.

    Reply

Leave a ReplyCancel reply

Primary Sidebar

  • Facebook
  • X
  • Pinterest
  • Tumblr

Subscribe via Email

Top Picks

python local environment setup

Python Local Development Environment: Complete Setup Guide

In-Depth JWT Tutorial Guide For Beginners

JSON Web Tokens (JWT): A Complete In-Depth Beginners Tutorial

The Ultimate Git Commands CheatSheet

Git Commands Cheatsheet: The Ultimate Git Reference

web development architecture case studies

Web Development Architecture Case Studies: Lessons From Titans

static website deployment s3 cloudfront

Host Static Website With AWS S3 And CloudFront – Step By Step

Featured Dev Tools

  • Diff Checker
  • JWT Decoder

Recently Published

advanced service worker features

Advanced Service Worker Features: Push Beyond the Basics

service worker framework integration

Service Workers in React: Framework Integration Guide

service worker caching strategies

Service Worker Caching Strategies: Performance & Offline Apps

service worker lifecycle

Service Worker Lifecycle: Complete Guide for FE Developers

what is service worker

What Is a Service Worker? A Beginner’s Guide

Footer

Subscribe via Email

Follow Us

  • Facebook
  • X
  • Pinterest
  • Tumblr

Explore By Topics

Python | AWS | PHP | C# | Javascript

Copyright © 2025

https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_94bbee2d936da803fcb0c165ecea60cd9d7692c4af4a22dea843dec392789b2115fea5bb24d49a475243eab6a8dac5fc3e69bba84aba376ded6a9306e77b5d90.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_edc0e9ef106cc9ef7edd8033c5c6fcff6dc09ee901fd07f4b90a16d9345b35a06534f639e018a64baaf9384eee1df305570c1ecad747f41b787b89f53839962b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_5a3aa28cd4eb24db3e3e2acd58230ff5cdc78120b94c2b118227d4c7806ecac03978e1a10404240314f66a3b82af8823768abb8b9eccc5003d198eb077ea12b8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_259645f7837b2e3bbea4da322a28e9d966b3e0be06f6f147e120ed7acb1b3657b8d3cb198e86902299b01216de148c1f7c8f3cedf825d705ee5b9b749ddcff01.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_aa5a5d229b421633f4247380e1e8c0a4854f82efb35d13a5b07b7b8fbe22e98842a580f063e5965345a51c477a7f5c2585edf8dd7d896b2438dc61f91d8d970c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7859317dea28a85c983d7b2a933704b193600b52929d2d894deae21a5d78f1f9715214d4c2ed1b925e9183146806725621d586779705dea3b651260eb53a2f8a.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_88ae2b49198992d74c7b49d8f58fa0b23cd118a206c2146b2b647c002912e1839329454d2ec96ef09b2a2edf86df8dd8c32e21ce3a4c6728f82a42795f2c1b0f.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67f99bef3678c549a14b5f2ff790cce6aba338dca29020755444231b45fa0f980f795e3658496ba70739a099b47b22bc2eab564343ac6132309de3adbbae3455.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js