本文相关curl工具套接字IPC

前言

net模块主要由net.Server类net.Socket类和net上的几个方法组成

net.Server用于创建 TCP 或 IPC server,net.Socket是TCP 或 UNIX Socket 的抽象(在Windows上使用命名管道,而UNIX使用域套接字)。

我们在讲IPC通信机制时讲过匿名管道pipe,其中还有具名管道FIFO,具体可查看相关章节

实例

服务端用net.Server类创建服务后,客户端利用createConnection()进行连接。

server.js

server.on('connection', socket => {
  socket.setEncoding('utf8')
  socket.on('data', chunk => {
    console.log('服务端收到消息', chunk)
  })

  console.log('有新的客户端连接')
  socket.write('reply from 服务端')
  socket.pipe(socket)
})

server.on('listening', () => {
  console.log('绑定了listening')
})

server.listen(8124, () => {
  console.log(server.address())
  console.log(`server is start on : ${server.address().port}`)
})

client.js

const client = net.createConnection({ port: 8124 }, () => {
  console.log('客户端创建连接')
  client.write('客户端的消息 hello ym')
})

client.on('close', () => {
  console.log('客户端连接关闭')
})

client.on('connect', () => {
  console.log('客户端连接成功')
})

net.createServernet.Server的别名,net.createConnectionnet.Socket的别名