node.js实现端口转发

2019-09-01 15:30 来源:未知

以上就是本文的全部内容,希望对大家的学习有所帮助。

前言

本文为大家分享的是node.js端口转发实现代码,供大家参考,具体内容如下

var port = 80 // 默认检测80端口
if (process.argv[2] === '-p') {
 port = parseInt(process.argv[3])
}
portIsOccupied(port)

您可能感兴趣的文章:

知道了原理,下面我们来编写更加完美的程序吧。

#!/sbin/node

var net = require('net');

function proxyPort(srcport,destServer,destport)
{
  var server = net.createServer(function(c) { //'connection' listener

    c.on('end', function() {
        console.log('src disconnected');
    });

    var client = net.connect({port: destport,host:destServer},function() { //'connect' listener
         console.log('ok....');
         c.on('data', function(data) {
             console.log(data.length);
           client.write(data);
         });
    });

    client.on('error', function(err) {
     console.log("dest="   err);
     c.destroy();
    });

    c.on('error', function(err) {
     console.log("src"   err);
     client.destroy();
    });

    client.on('data', function(data) {
     c.write(data);
    });

    client.on('end', function() {
     console.log('dest disconnected ');
    });

  });
  server.listen(srcport, function() { //'listening' listener
   console.log('server bound'   srcport);
  });
}

var params = process.argv;
if(params.length != 5){
 console.log("node port.js srcport destserver destport "); 
 return;
}

proxyPort(params[2],params[3],params[4]);

console.log(process.argv);

Nodejs检测端口是否被占用

这时,再次执行 node portIsOccupied.js,输出 The port【1987】 is occupied, please change other port.

开启本地服务时,有这么一种情况:当前端口已经被另一个项目使用了,导致服务开启失败。

测试篮球世界杯赌球,

var net = require('net')

// 检测端口是否被占用
function portIsOccupied (port) {
 // 创建服务并监听该端口
 var server = net.createServer().listen(port)

 server.on('listening', function () { // 执行这块代码说明端口未被占用
 server.close() // 关闭服务
 console.log('The port【'   port   '】 is available.') // 控制台输出信息
 })

 server.on('error', function (err) {
 if (err.code === 'EADDRINUSE') { // 端口已经被使用
  console.log('The port【'   port   '】 is occupied, please change other port.')
 }
 })
}

// 执行
portIsOccupied(1987)

总结

思路

执行

node portIsOccupied.js -p [port]

控制台给程序传参

让程序更加完美

其中 [port] 是你想要检测的端口。

使用ssr将当前目录设置成静态服务器,关于ssr的使用可以在这里找到 https://github.com/jaywcjlove/ssr
ssr默认会开启 1987 端口。

TAG标签:
版权声明:本文由美洲杯赌球发布于计算机教程,转载请注明出处:node.js实现端口转发