Node.js之如何構建UDP服務
UDP簡介
UDP又稱用戶數(shù)據(jù)包協(xié)議,它和TCP一樣屬于網(wǎng)絡傳輸層。
與TCP不同的是,它不是面向連接的,只需要一個套接字就可以與多個UDP服務通信。
它提供的信息傳輸服務雖然簡單不可靠,并且在網(wǎng)絡差的情況存在丟包問題,但是由于它無需連接,資源消耗低,所以常常應用在一些偶爾丟包也不會產(chǎn)生嚴重影響的場景下。
例如音頻視頻,DNS服務等。
服務端(server.js)
廢話不多講,直接上實例:
const dgram = require("dgram"); const server = dgram.createSocket("udp4"); server.on("message", (msg, rinfo) => { console.log("rinfo.address = " + rinfo.address); console.log("rinfo.port = " + rinfo.port); console.log(msg.toString()); }); server.on("listening", () => { console.log("address:" + server.address().address); console.log("port:" + server.address().port); }); server.bind("41234");
我們使用dgram包的createSocket方法來創(chuàng)建一個udp服務,其實我們即可以用它做服務端,也可以用來作客戶端。
然后綁定listening事件,當服務啟動,就會觸發(fā)監(jiān)聽。
然后綁定message事件,當有客戶端消息發(fā)送過來的時候就會觸發(fā),發(fā)送過來的message是一個buffer
最后調用bind方法,綁定數(shù)據(jù)傳輸端口。
客戶端(client.js)
廢話不多講,直接上代碼:
const dgram = require("dgram"); const client = dgram.createSocket("udp4"); client.send("hello, nodejs", 41234, "localhost", (err, bytes) => { console.error(err); console.log(bytes); client.close(); client.on("close", () => { console.log("close"); }); });
客戶端調用send方法來發(fā)送消息,參數(shù)分別代表,要發(fā)送的信息,端口,地址,以及回調。
運行server.js 和client.js進行測試。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Node.js EventEmmitter事件監(jiān)聽器用法實例分析
這篇文章主要介紹了Node.js EventEmmitter事件監(jiān)聽器用法,結合實例形式分析了EventEmmitter事件監(jiān)聽器相關函數(shù)與使用技巧,需要的朋友可以參考下2019-01-01基于nodejs+express4.X實現(xiàn)文件下載的實例代碼
本篇文章主要介紹了詳解nodejs+express4.X的文件下載的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07基于NodeJS的前后端分離的思考與實踐(四)安全問題解決方案
本文就在前后端分離模式的架構下,針對前端在Web開發(fā)中,所遇到的安全問題以及應對措施和注意事項,并提出解決方案。2014-09-09