TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
/
注册
用户名
邮箱

Node.js net模块详解(含类、方法、事件)

2025-06-13
/
0 评论
/
2 阅读
/
正在检测是否收录...
06/13

1. 核心类:net.Servernet.Socket

  • net.Server:代表一个网络服务器,用于监听来自客户端的连接请求。它继承自EventEmitter,提供了如listen(监听端口)、close(关闭服务器)等方法和如connection(当有新的连接时触发)等事件。

  • net.Socket:代表一个网络套接字,是双向通信的流。每个从客户端来的连接都会创建一个新的net.Socket实例。它同样继承自EventEmitter,支持读写操作、事件监听等。

2. 方法

  • 构造函数:可以通过require('net').createServer([options][, connectionListener])来创建一个新的服务器实例,通过require('net').createConnection(options[, connectListener])来创建一个新的客户端或IPC连接。

  • 监听端口:使用server.listen(port[, hostname][, backlog][, callback])来监听指定的端口和(可选的)主机名。回调函数在监听完成时被调用。

  • 关闭服务器:通过调用server.close([callback])来关闭服务器,结束监听并关闭所有的连接。可选的回调函数在服务器关闭后被调用。

3. 事件

  • connection:当有新的连接时触发,参数为新的net.Socket实例。例如:server.on('connection', (socket) => { ... })

  • listening:当服务器开始监听时触发,参数为错误对象或null(如果没有错误)。例如:server.on('listening', () => { ... })

  • error:当服务器或连接发生错误时触发,参数为错误对象。例如:server.on('error', (err) => { ... })

  • close:当服务器关闭时触发,可选地接受一个回调函数作为参数。例如:server.on('close', () => { ... })

4. 应用示例

创建TCP服务器:

javascript const net = require('net'); const server = net.createServer(socket => { console.log('client connected'); socket.write('hello world\n'); socket.setEncoding('utf8'); // 设置编码格式为utf8 socket.on('data', (data) => { // 接收数据事件 console.log(data); // 打印接收到的数据 }); socket.on('end', () => { // 连接结束事件 console.log('client disconnected'); // 打印客户端断开连接的信息 }); }); server.listen(1234, '127.0.0.1', () => { // 监听在1234端口上,监听成功后打印信息 console.log('server bound to 1234'); // 打印信息显示服务器已绑定到1234端口上。 });

创建IPC客户端:

```javascript
const net = require('net');
const client = net.createConnection({ path: '//path/to/socket/file' }, () => { // 通过文件路径创建IPC连接。 这里的路径为Unix域套接字文件路径,Windows不适用。
console.log('connected to the server'); // 连接成功打印信息。在Unix系统中,路径是IPC通信的关键。
});
client.on('data', (data) => { // 数据接收事件处理函数。这里接收来自服务器的数据。
console.log(data); // 打印接收到的数据。
}); // 注意,IPC通常用于同一台机器上的进程间通信,所以不需要考虑端口号问题。 它是通过文件系统来实现的。 client.write('Hello, server!'); // 向服务器发送数据 client.end(); // 断开连接(可选) }); }); }); // 注意: 在Windows上创建IPC客户端时, 请使用流 (如fs的createReadStream/createWriteStream) 或其他机制, 因为Node.js的net模块在Windows上不支持通过文件路径创建IPC连接。)

Node.js事件处理流(Streams)net模块TCP服务器IPC客户端和服务器异步网络通信连接管理
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/29617/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云