Node.js使用UDP通訊
阿新 • • 發佈:2018-11-09
Node.js 的 dgram
模組可以方便的建立udp服務,,以下是使用 dgram模組建立的udp服務和客戶端的一個簡單例子。
一、建立 UDP Server
var dgram = require('dgram'); //建立 udp server var udp_server = dgram.createSocket('udp4'); udp_server.bind(5678); // 繫結埠 // 監聽埠 udp_server.on('listening', function () { console.log('udp server linstening 5678.'); }) //接收訊息 udp_server.on('message', function (msg, rinfo) { strmsg = msg.toString(); udp_server.send(strmsg, 0, strmsg.length, rinfo.port, rinfo.address); //將接收到的訊息返回給客戶端 console.log(`udp server received data: ${strmsg} from ${rinfo.address}:${rinfo.port}`) }) //錯誤處理 udp_server.on('error', function (err) { console.log('some error on udp server.') udp_server.close(); })
二、建立 UDP Client
var dgram = require('dgram'); var udp_client = dgram.createSocket('udp4'); udp_client.on('close',function(){ console.log('udp client closed.') }) //錯誤處理 udp_client.on('error', function () { console.log('some error on udp client.') }) // 接收訊息 udp_client.on('message', function (msg,rinfo) { console.log(`receive message from ${rinfo.address}:${rinfo.port}:${msg}`); }) //定時向伺服器傳送訊息 setInterval(function(){ var SendBuff = 'hello 123.'; var SendLen = SendBuff.length; udp_client.send(SendBuff, 0, SendLen, 5678, '172.30.20.10'); },3000);