
279
レシピ 8.3 TCP 通信を行う
forwarder.js
var net = require('net');
var fromPort = process.argv[2] || 9000;
var toPort = process.argv[3] || 22;
デフォルトでは
9000
番ポートで受信したデータを
22
番(
SSH
)ポートに転送するよう定義さ
れていますが、コマンド実行時に引数を指定することで、受信・転送ポート番号を設定することも
できます。
次に、
fromPort
で指定されたポートで待機する
TCP
サーバを設定します。この
TCP
サーバに
クライアントが接続すると自らがクライアントとなり
toPort
に接続し、クライアントから受け
取ったデータをすべて
toPort
に転送します。
forwarder.js
net.createServer(function (socket) {
var client;
socket.on('connect', function () {
client = net.connect(toPort);
client.on('data', function (data) {
socket.write(data);
});
}).on('data', function (data) {
client.write(data);
}).on('end', function (data) {
client.end();
});
}).listen(fromPort, function ...