程序员开发实例大全宝库

网站首页 > 编程文章 正文

Node.js实战15:通过udp传输文件(node udp)

zazugpt 2024-08-29 02:09:06 编程文章 18 ℃ 0 评论

本文将要写一个udp服务器,和一个udp客户端,并实现客户端发送文件给服务器。

服务器端

代码如下:

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的内置模块,提供了 UDP 数据包 socket 的实现。

2、server()函数提供了监听和消息响应方法,当接收到数据时,会进行输出显示。

客户端

代码如下:

var dgram = require("dgram");
var fs = require("fs");

client();

function client(){
 	//通过流读取文件内容
 var inStream = fs.createReadStream("./file.txt");

 inStream.on("readable",function(){
 send();
 });

 function send(){
 var message = inStream.read(16);
 var socket = dgram.createSocket("udp4");

 	//没有内容了?关闭连接
 if(!message){
 return socket.unref();
 }
 
 	//连接本地8000端口
 socket.send(message,0,message.length,8000,"127.0.0.1",function(err,bytes){
 send();
 });
 }
}

代码解读:

1、客户端完成两项工作:读取文件file.txt、向服务器发送;

2、读取是通过流进行的,读取后即进行发送,当读取完成时,关闭socket。

file.txt文件内容如下:

jshaman.com is a web,used for obfuscate js file.

执行效果如下:

本系列更多教程:

Node.js实战14:一个简单的TCP服务器

Node.js实战13:fs模块奥义!开发一个数据库

Node.js实战12:fs模块高级技巧

Node.js实战11:fs模块初探

Node.js实战10:“流”是Node.js最强大的功能之一

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表