1. TCP
在Node.js中,提供了net模塊用來實現(xiàn)TCP服務器和客戶端的通信。
1.1 TCP服務器
net.createServer([options][, connectionListener])
也可以通過監(jiān)聽connection事件的方式來指定監(jiān)聽函數(shù)
server.on('connection',function(socket){});1.1.1 啟動TCP服務器
可以使用listen方法通知服務器開始監(jiān)聽客戶端的連接
server.listen(port,[host],[backlog],[callback])
server.on('listening',function(){});1.1.2 使用TCP服務器
let net = require('net');let server = net.createServer(function(socket){ console.log('客戶端已連接');});server.listen(8080,'localhost',function(){ console.log('服務器開始監(jiān)聽');});1.1.3 address
server.address()port 端口號 address TCP服務器監(jiān)聽的地址 family 協(xié)議的版本
1.1.4 getConnections
查看當前與TCP服務器建立連接的客戶端的連接數(shù)量以及設置最大連接數(shù)量
server.getConnections(callback); server.maxConnections = 2;
1.1.5 close
使用close方法可以顯式拒絕所有的客戶端的連接請求,當所有已連接的客戶端關閉后服務器會自動關閉,并觸發(fā)服務器的close事件。
server.close();server.on('close',callback);1.2 socket
1.2.1 address
net.Socket代表一個socket端口對象,它是一個可讀可寫流。
let net = require('net');let util = require('util');let server = net.createServer(function(socket){ server.getConnections((err,count)=>{ server.maxConnections = 1; console.log('最大連接數(shù)量%d,當前連接數(shù)量%d',server.maxConnections,count); }); let address = socket.address(); console.log('客戶端地址 %s',util.inspect(address));});1.2.2 讀取數(shù)據(jù)
let server = net.createServer(function (socket) { socket.setEncoding('utf8'); socket.on('data', function (data) { console.log('本次收到的內(nèi)容為%s,累計收到的字節(jié)數(shù)是%d', data, socket.bytesRead); });});1.2.3 監(jiān)聽關閉事件
let server = net.createServer(function (socket) { socket.on('end', function () { console.log('客戶端已經(jīng)關閉'); });});
新聞熱點
疑難解答
圖片精選