美文网首页
Node.js学习——HTTP服务器与客户端(二)

Node.js学习——HTTP服务器与客户端(二)

作者: zhuangX | 来源:发表于2018-11-20 15:33 被阅读0次

    1.实验目的

        使用Node.js实现服务器发送图片给客户端。

    2.实验方法

        通过使用http模块实现服务器发送图片给客户端。

    3.实验环境

        windows10操作系统
        node.js v8.9.4版本

    4.实验步骤

        4.1. 服务器端代码

    const http = require("http"); 
    const fs = require("fs");
    const server = new http.Server();
    
    server.on("request", function(req, res) {
        res.writeHead(200, {
            "content-type": "text/plain"
        });
        //网页上的图片传输是通过Base64将图片编码成字符串而实现的,因为readFileSync()默认编码为null,所以这里
        //我们采用base64编码读取图片。
        let data = fs.readFileSync("./girl.jpg", {encoding: "base64"});
        res.write(data);
        res.end();
    });
    
    server.listen(8888, function() {
        console.log('HTTP服务器开启成功');
    });
    

              将上述代码保存为serevr.js文件,执行后可看到结果如下。

    图一 server.js文件执行结果

        4.2. 客户端代码

    const http = require("http");
    const fs = require("fs");
    
    let reqData = "";
    //设置host和port
    let option = {  
        "host": "127.0.0.1",
        "port": "8888"
    }
    
    const req = new http.request(option);
    
    req.on("response", function(res) {
        res.on("data", function(chunk) {
            reqData += chunk;
        });
        res.on("end", function() {
            //当writeFile()写入字符串时默认编码为utf-8,所以这里我们将其设定为base64编码。 
            //将图片写入当前文件夹并保存为test.jpg
            fs.writeFile("./test.jpg", reqData, "base64", function(err) {
                console.log("图片写入成功");
            });
        });
    });
    
    req.end();
    

              将上述代码保存为client.js文件,执行后可看到结果如下。


    图二 client.js文件执行结果

        4.3. 最终结果
              这时,打开文件夹即可看到已经保存的test.jpg文件。


    图三 最终结果

    5 .参考文献

    相关文章

      网友评论

          本文标题:Node.js学习——HTTP服务器与客户端(二)

          本文链接:https://www.haomeiwen.com/subject/deszfqtx.html