1. 程式人生 > >node.js學習之建立TCP伺服器

node.js學習之建立TCP伺服器

/*createServer方法與listen方法的簡單例項*/

var net = require('net');
var server = net.createServer(function (socket) {
    //當客戶端與伺服器建立連線時列印
    console.log('客戶端與伺服器端的連線已建立')
});
server.listen(3000,'localhost',function () {
    console.log('伺服器開始監聽3000埠')
})

/*指定伺服器地址及埠已被佔用時需要的處理*/


var net = require('net');
var server = net.createServer(function (socket) {
    //當客戶端與伺服器建立連線時列印
    console.log('客戶端與伺服器端的連線已建立')
});
server.listen(3000,'localhost');
server.on('error',function (e) {
    //當伺服器及埠被佔用時的錯誤程式碼為EADDRINUSE
    if(e.code == 'EADDRINUSE'){
        console.log('伺服器地址及埠已被佔用');
    }
});

/*使用address方法檢視TCP伺服器監聽的地址資訊*/

var net = require('net');
var server = net.createServer(function (socket) {
    //當客戶端與伺服器建立連線時列印
    console.log('客戶端與伺服器端的連線已建立')
});
server.listen(3000,'localhost',function () {
    var address = server.address();
    console.log('被監聽的地址資訊為 %j',address);
    //本機輸出:被監聽的地址資訊為 {"address":"127.0.0.1","family":"IPv4","port":3000}
})

/*使用getConnections方法查詢當前存在的客戶端連線數並設定最大值*/

var net = require('net');
var server = net.createServer(function (socket) {
    server.getConnections(function (err, count) {
        console.log('當前存在%d個客戶端連線',count);
        server.maxConnections = 2;
        console.log('TCP伺服器的最大連結數為 %d',server.maxConnections);
    })
});
server.listen(3000,'localhost');
console.log('TCP伺服器被建立');

/*使用close方法拒絕新的客戶端連線請求*/

var net = require('net');
var server = net.createServer(function (socket) {
    //當第一個客戶端連線被關閉後,TCP伺服器也被被關閉
    server.close(function () {
        console.log('TCP伺服器被關閉');
    });
}).listen(3000,'localhost');