NodeJS - 创建简单的转发服务器

时间:2011-06-23 14:20:12

标签: node.js client

我正在尝试创建一个简单的nodejs服务器到服务器程序。

这就是我想要实现的目标:

-----------¦remote¦-----satellite link-----¦core¦---------
port 6999                port 7000                 port 6999

我需要为'remote'和'core'编写node.js代码。

这就是我所熟悉的内容(我现在非常困惑......):

//remote.js
var util=require('util');
var net=require('net');

var input=net.createServer(function(inputStream){
        inputStream.on('data', function(data) {
                util.puts(data);
        });
        var output=net.createServer(function(outputStream) {
                outputStream.pipe(inputStream, {end: false});

                outputStream.on('data',function(dta){
                        util.puts(dta);
                });
        });
        output.listen(7000, '172.16.1.224');
});
input.listen(6999, '172.16.1.224');

一旦我将这两个转发模块(远程和核心)启动并运行,我希望能够进行一些数据包检查......

非常感谢,

2 个答案:

答案 0 :(得分:1)

您需要为输出流调用createConnection。查看我的端口转发代码here

答案 1 :(得分:1)

您可以简单地将输入和输出定义为两个连接,如此。

net.createServer(function(from) {
    var to = net.createConnection({
        host: addr.to[2],
        port: addr.to[3]
    });
    from.pipe(to);
    to.pipe(from);
}).listen(addr.from[3], addr.from[2]);

请参阅Node.js - forward all traffic from port A to port B