NodeJS Datagram Module : Building Efficient UDP Servers and Clients In NodeJS

Other Blogs

Blogs ❯❯ NodeJS

Image could not load

NodeJS dgram module

 What is dgram Module In Node.js ?

Node.js का dgram module UDP (User Datagram Protocol) datagrams के साथ काम करने के लिए use होता है। UDP एक connectionless protocol है जो fast data transmission को allow करता है, लेकिन इसमें reliability और order guarantee नहीं होती है।

dgram module का use करके आप network applications develop कर सकते हैं जो UDP sockets का use करते हैं।

Need of dgram Module

  • Low-Latency Communication : Real-time applications के लिए जहां latency critical है, जैसे gaming और live streaming।

  • Broadcasting : Multiple clients को एक साथ data भेजने के लिए, जैसे कि discovery protocols।

  • Simple Messaging : छोटे और simple messages भेजने के लिए जहां reliability उतनी जरूरी नहीं है।

UDP vs TCP

  • UDP : Lightweight और fast protocol है, कोई connection establishment नहीं होता। Reliability और order guarantee नहीं होती।

  • TCP : Reliable और ordered data transmission करता है, लेकिन connection setup और teardown के कारण latency बढ़ सकती है।

Basic Operations Of Dgram Module

Dgram Socket Creation

UDP socket create करने के लिए dgram.createSocket() function का use किया जाता है।

const dgram = require('dgram'); // UDP socket creation. const socket = dgram.createSocket('udp4'); // 'udp4' for IPv4, 'udp6' for IPv6. socket.on('error', (err) => { console.log(`Socket error: ${err}`); socket.close(); });

Sending Messages

UDP socket से messages send करने के लिए socket.send() function का use किया जाता है।

const message = Buffer.from('Hello, UDP!'); socket.send(message, 0, message.length, 41234, 'localhost', (err) => { if (err) { console.error('Message send error:', err); } else { console.log('Message sent successfully!'); } socket.close(); });

Receiving Messages

UDP socket पर messages receive करने के लिए socket.on('message') event listener का use किया जाता है।

socket.on('message', (msg, rinfo) => { console.log(`Received message: ${msg} from ${rinfo.address}:${rinfo.port}`); }); socket.bind(41234, 'localhost', () => { console.log('Socket bound to 41234'); });

NodeJS UDP Client and Server Example

UDP Server

const dgram = require('dgram'); const server = dgram.createSocket('udp4'); server.on('error', (err) => { console.log(`Server error: ${err.stack}`); server.close(); }); server.on('message', (msg, rinfo) => { console.log(`Server got: ${msg} from ${rinfo.address}:${rinfo.port}`); }); server.on('listening', () => { const address = server.address(); console.log(`Server listening on ${address.address}:${address.port}`); }); server.bind(41234);
UDP Client

const dgram = require('dgram'); const client = dgram.createSocket('udp4'); const message = Buffer.from('Hello from client'); client.send(message, 0, message.length, 41234, 'localhost', (err) => { if (err) { console.error('Client send error:', err); } else { console.log('Client message sent!'); } client.close(); });

Advanced Features of dgram

1. Broadcasting

UDP broadcasting का use करके आप एक ही message multiple clients को send कर सकते हैं।

const dgram = require('dgram'); const broadcastSocket = dgram.createSocket('udp4'); broadcastSocket.bind(() => { broadcastSocket.setBroadcast(true); const message = Buffer.from('Hello, Network!'); broadcastSocket.send(message, 0, message.length, 41234, '255.255.255.255'); });

2. Multicasting

UDP multicasting का use करके आप specific group of hosts को messages भेज सकते हैं।

const dgram = require('dgram'); const multicastSocket = dgram.createSocket('udp4'); multicastSocket.bind(41234, () => { multicastSocket.addMembership('239.255.255.255'); console.log('Multicast group joined'); }); multicastSocket.on('message', (msg, rinfo) => { console.log(`Received multicast message: ${msg} from ${rinfo.address}:${rinfo.port}`); });

Conclusion

  • Low-Latency Applications : UDP का use low-latency communication के लिए होता है।

  • Simple Messaging : Simple और lightweight messaging applications के लिए उपयुक्त।

  • Broadcasting और Multicasting : Multiple clients को messages भेजने के लिए उपयोगी।

Node.js का dgram module UDP-based applications develop करने के लिए एक powerful tool है। इसे use करते समय network conditions और data reliability को ध्यान में रखना जरूरी है। Proper error handling और testing से आप robust UDP applications बना सकते हैं।

Related Topics :

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !