Skip to content

Node.js net 模块(TCP)

net 模块用于创建 TCP 服务器和客户端,适用于服务器之间的低层通信(不经过 HTTP)。

TCP 特点

特点说明
可靠性确认 + 序列号 + 重传保证数据不丢失
面向连接三次握手建立连接
全双工双方可同时收发
流式传输连续字节流,不是离散数据包
拥塞控制自动调整发送速率

TCP 服务器 server.js

js
import net from 'net'

const server = net.createServer((socket) => {
  setInterval(() => {
    socket.write('XiaoMan')   // 每秒向客户端发送数据
  }, 1000)
})

server.listen(3000, () => console.log('listening on 3000'))

TCP 客户端 client.js

js
import net from 'net'

const client = net.createConnection({ host: '127.0.0.1', port: 3000 })

client.on('data', (data) => {
  console.log(data.toString())  // 'XiaoMan'
})

HTTP vs TCP

HTTPTCP
层级应用层传输层
协议请求/响应 + 头信息纯字节流
开销较大(Header 很多)较小
场景Web API / 浏览器服务器间通信 / RPC