Node.js实战15:通过udp传输文件。

本文介绍了一个基于Node.js的UDP文件传输示例,包括服务器端和客户端的代码实现。服务器监听并接收来自客户端的数据,客户端从文件中读取数据并将其发送到服务器。此示例展示了如何使用dgram模块进行UDP数据包的发送和接收。

本文将要写一个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.
在这里插入图片描述
执行效果如下:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值