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

我只是一个虾纸丫 提交于 2019-12-23 01:40:13

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

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!