net
模塊提供了一種創(chuàng)建 TCP 服務(wù)器和 TCP 客戶端的方法淘衙。它是 Node.js 通訊功能實(shí)現(xiàn)的基礎(chǔ)。
net
模塊主要包含兩部分:
-
net.Server
用于創(chuàng)建 TCP 或 IPC 服務(wù)器芦缰。 -
net.Socket
對(duì)象是 TCP 或 UNIX Socket 的抽象蓄坏。net.Socket
實(shí)例實(shí)現(xiàn)了一個(gè)雙工流接口价捧,可以在用戶創(chuàng)建客戶端(使用connect()
)時(shí)使用丑念,或者由 Node 創(chuàng)建它們涡戳,并通過connection
服務(wù)器事件傳遞給用戶。
它們各自都實(shí)現(xiàn)了很多屬性和方法脯倚,詳細(xì)查閱文檔渔彰。
我們?cè)诮⒎?wù)器時(shí)會(huì)使用到的 http.createServer
,它是在 net.createServer
方法的基礎(chǔ)上建立的推正。以下是一個(gè)簡(jiǎn)單的示例:
// server.js
const net = require('net')
const port = 8080
const server = net.createServer((connection) => {
console.log('client connected')
connection.on('end', () => {
console.log('客戶端關(guān)閉連接')
})
connection.write('Hello Node.js!')
connection.pipe(connection)
})
server.listen(port, () => {
console.log(`App listening on port ${port}`)
})
client.js
文件:
const net = require('net')
const client = net.connect({ port: 8080 }, () => {
console.log('連接到服務(wù)器恍涂!')
})
client.on('data', (data) => {
console.log(data.toString())
client.end()
})
client.on('end', () => {
console.log('斷開與服務(wù)器的連接')
})