var net = require('net'); // 建立一個TCP服務器,function(connection){}是給connection事件建立的監聽器,當有接收到請求的時候觸發 var server = net.createServer(function (connection) { console.log('client connected'); // 當 socket 另外一端發送 FIN 包時,觸發該事件。 connection.on('end', function () { console.log('客戶端關閉連接'); }); // 寫入數據,默認是uft8編碼 connection.write('Hello World!\r\n'); // pipe()是管道流方法,把connection加到connection中 connection.pipe(connection); }); // 監聽8080端口,客戶端端口須要與其一致 server.listen('8080', function () { console.log('server is listening'); });
var net = require('net'); // 返回一個新的net.Socket,並連接到指定的端口,這裏是8080,端口須要與服務器保持一致 // 當socket創建的時候,將會觸發‘connect’事件 var client = net.connect( {port: 8080}, function () { console.log('連接到服務器'); } ); // data爲net.Socket對象的事件,當接收到數據時觸發 client.on('data', function (data) { console.log(data.toString()); // 半關閉 socket。例如,它發送一個 FIN 包。可能服務器仍在發送數據。 client.end(); }); // 當 socket 另外一端發送 FIN 包時,觸發該事件。 client.on('end', function () { console.log('斷開與服務器的連接'); });
運行: 打開兩個窗口,先在其中一個端口啓動服務器 node server.jsnode
在另外一個窗口運行客戶端 node client.js編程
怎麼實如今這兩個窗口進行聊天呢?服務器