模塊概覽
net模塊是同樣是nodejs的核心模塊。在http模塊概覽里提到,http.Server繼承了net.Server,此外,http客戶端與http服務(wù)端的通信均依賴于socket(net.Socket)。也就是說,做node服務(wù)端編程,net基本是繞不開的一個(gè)模塊。
從組成來看,net模塊主要包含兩部分,了解socket編程的同學(xué)應(yīng)該比較熟悉了:
net.Server:TCP server,內(nèi)部通過socket來實(shí)現(xiàn)與客戶端的通信。
net.Socket:tcp/本地 socket的node版實(shí)現(xiàn),它實(shí)現(xiàn)了全雙工的stream接口。
本文從一個(gè)簡單的 tcp服務(wù)端/客戶端 的例子開始講解,好讓讀者有個(gè)概要的認(rèn)識。接著再分別介紹 net.Server、net.Socket 比較重要的API、屬性、事件。
對于初學(xué)者,建議把文中的例子本地跑一遍加深理解。
簡單的 server+client 例子
tcp服務(wù)端程序如下:
var net = require('net');var PORT = 3000;var HOST = '127.0.0.1';// tcp服務(wù)端var server = net.createServer(function(socket){ console.log('服務(wù)端:收到來自客戶端的請求');