如何在nodejs服务器上处理SYN / RST数据包?

时间:2017-12-18 12:54:59

标签: javascript node.js tcp

我正在尝试为大学的网络研究构建一个简单的服务器。我只需要处理服务器获得的一些请求。
我已经成功使用GET方法,我必须通过传输层处理更多的数据包 - SYN和RST。
示例:当SYN数据包到达时,服务器必须发送回SYN-ACK数据包。

我开始使用http模块创建我的服务器,但我不确定它是否可以处理TCP数据包,而且我找不到任何处理TCP数据包的源。
以下是我开始编码的内容:

'use strict'
let http = require('http');
let fs = require('fs');
let path = require('path');

let PORT = 4500;
let address = "127.0.0.1";

require('dns').lookup(require('os').hostname(), function (err, add, fam) {
    address = add;
});

let server = http.createServer(function (req, res) {
    console.log(`${req.method} request for ${req.url}`);
    if (req.url === '/') {
        fs.readFile('./index.html', function(err,data) {
            if (err) {
                throw err;
            }
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.end(data);
        });
    } else if (req.url.match(/.jpg$/)) {
        let imgPath = path.join(__dirname, 'images', req.url);
        let imgStream = fs.createReadStream(imgPath);
        res.writeHead(200, {'Content-Type': 'image/jpeg'});
        imgStream.pipe(res);
    } else {
        res.writeHead(404, {"Content-Type": "text/plain"});
        res.end("404 File Not Found");
    }
});
server.listen(PORT, address);
console.log(`Server is running on ip ${address}, port ${PORT}.`);

我是JavaScript和Node.js的新手,所以任何代码建议都会受到欢迎! :)

0 个答案:

没有答案