node.js 实现udp传输_Node.js实战15:通过udp传输文件。
本文將要寫一個udp服務(wù)器,和一個udp客戶端,并實現(xiàn)客戶端發(fā)送文件給服務(wù)器。
服務(wù)器端
代碼如下:var dgram = require("dgram");
server();
function server(){
var socket = dgram.createSocket("udp4");
socket.on("message",function(msg,rinfo){
process.stdout.write(msg.toString());
});
socket.on("listening",function(){
console.log("server ready:",socket.address());
});
socket.bind(8000);
}
代碼解讀:
1、dgram是nodejs的內(nèi)置模塊,提供了 UDP 數(shù)據(jù)包 socket 的實現(xiàn)。
2、server()函數(shù)提供了監(jiān)聽和消息響應(yīng)方法,當接收到數(shù)據(jù)時,會進行輸出顯示。
客戶端
代碼如下:var dgram = require("dgram");
var fs = require("fs");
client();
function client(){
//通過流讀取文件內(nèi)容
var inStream = fs.createReadStream("./file.txt");
inStream.on("readable",function(){
send();
});
function send(){
var message = inStream.read(16);
var socket = dgram.createSocket("udp4");
//沒有內(nèi)容了?關(guān)閉連接
if(!message){
return socket.unref();
}
//連接本地8000端口
socket.send(message,0,message.length,8000,"127.0.0.1",function(err,bytes){
send();
});
}
}
代碼解讀:
1、客戶端完成兩項工作:讀取文件file.txt、向服務(wù)器發(fā)送;
2、讀取是通過流進行的,讀取后即進行發(fā)送,當讀取完成時,關(guān)閉socket。
file.txt文件內(nèi)容如下:jshaman.com is a web,used for obfuscate js file.
執(zhí)行效果如下:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的node.js 实现udp传输_Node.js实战15:通过udp传输文件。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ecshop清除mysql缓存_ECSH
- 下一篇: python文件操作模式是什么,pyth