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
| HTTP | TCP | |
|---|---|---|
| 层级 | 应用层 | 传输层 |
| 协议 | 请求/响应 + 头信息 | 纯字节流 |
| 开销 | 较大(Header 很多) | 较小 |
| 场景 | Web API / 浏览器 | 服务器间通信 / RPC |