在 Node.js 环境下,要搭建一个 TCP 服务器,通常需要依赖哪个核心模块,并调用哪个方法?请结合实例说明创建 TCP 服务器的主要步骤。
考察说明
考查对 Node.js 网络模块 net 的掌握程度,以及创建 TCP 服务器的基本流程。
回答思路
- 【回答框架 1】在 Node.js 中,创建 TCP 服务器主要依赖核心模块 net。net 模块提供了创建服务器和客户端的能力,其中 createServer 方法用于实例化一个服务器对象。
- 【回答框架 2】使用 net.createServer 时,需要传入一个回调函数,该回调会在每次有客户端连接时被调用。回调函数接收 socket 参数,代表客户端连接对象,可通过它读写数据。
- 【回答框架 3】创建服务器后,需要调用 listen 方法指定端口和主机名,服务器才开始监听连接。例如 server.listen(port, host, callback),其中 callback 在服务器绑定成功后触发。
- 【回答框架 4】服务器可通过监听 connection 事件或利用回调参数处理数据,如 socket.on('data') 接收数据,socket.write() 发送数据,最后 socket.end() 关闭连接。
- 【回答框架 5】也可以监听 server 的 error 事件来处理端口占用等异常,并利用 server.close() 关闭服务器,停止接受新连接。
- 【关键点 1】需要 net 模块,通过 require('net') 引入。
- 【关键点 2】net.createServer(callback) 创建服务器,callback 在连接建立时执行。
- 【关键点 3】server.listen(port, host, callback) 启动监听,host 默认监听所有接口。
- 【关键点 4】可用 socket.on('data') 接收客户端数据,socket.write() 发送数据。
- 【关键点 5】监听 error 事件避免进程崩溃,使用 close 方法停止服务。
- 【易错点 1】不监听 error 事件,端口占用时可能抛出未捕获异常导致进程崩溃。
- 【易错点 2】混淆 server.listen 与 socket.listen,socket 没有 listen 方法。
- 【易错点 3】未调用 listen,服务器无法接收连接,但不会报错,易被忽略。