利用Node.js構建一個簡單的TCP代理服務器
今天我們將給大家介紹如何利用Node.js構建一個簡單的TCP代理服務器(TCP proxy server)。該方案:我們已經有了一臺主機(客戶端)建立一個TCP連接到另外一臺(遠程機)
client —> remote
</blockquote>我們要在中間架設一個代理服務器,客戶端與代理建立連接,然后代理轉發到遠程,并保持遠程響應。
利用node.js來實現這種類型的網絡操作將會非常簡單,詳見如下代碼:client —> proxy -> remote
</blockquote>var net = require('net');var LOCAL_PORT = 6512; var REMOTE_PORT = 6512; var REMOTE_ADDR = "192.168.1.25";
var server = net.createServer(function (socket) { socket.on('data', function (msg) { console.log(' START '); console.log('<< From client to proxy ', msg.toString()); var serviceSocket = new net.Socket(); serviceSocket.connect(parseInt(REMOTE_PORT), REMOTE_ADDR, function () { console.log('>> From proxy to remote', msg.toString()); serviceSocket.write(msg); }); serviceSocket.on("data", function (data) { console.log('<< From remote to proxy', data.toString()); socket.write(data); console.log('>> From proxy to client', data.toString()); }); }); });
server.listen(LOCAL_PORT); console.log("TCP server accepting connection on port: " + LOCAL_PORT);</pre>是不是很簡單呢?
源程序下載 github
Open經驗庫編譯自:http://css.dzone.com/articles/building-simple-tcp-proxy