📌  相关文章
📜  网络技术问题 | Node.js 测验 |第 3 组 |问题 14(1)

📅  最后修改于: 2023-12-03 15:11:44.681000             🧑  作者: Mango

网络技术问题 | Node.js 测验 | 第 3 组 | 问题 14

简介

本文是关于 Node.js 的测验题,共计 15 道题目,本文为第 3 组,第 14 道题目。该题目旨在测试程序员对于 Node.js 中 TCP Socket 的理解与应用。

问题描述

请编写一个 Node.js TCP Socket 服务器,监听 127.0.0.1:8080 端口,接收客户端发送过来的消息,并将该消息通过控制台输出。

代码片段
const net = require('net');

const server = net.createServer((socket) => {
  console.log('Client connected');

  socket.on('data', (data) => {
    console.log(`Message received: ${data}`);
  });

  socket.on('end', () => {
    console.log('Client disconnected');
  });
});

server.on('error', (err) => {
  throw err;
});

server.listen(8080, '127.0.0.1', () => {
  console.log('Server listening on 127.0.0.1:8080');
});
代码解释

首先,我们通过 require('net') 引入了 Node.js 内置的 net 模块。

然后,我们使用 net.createServer() 创建了一个 TCP Socket 服务器,并实现了 connection 事件回调函数。

connection 事件回调函数中,我们监听了 socketdata 事件和 end 事件,并在 data 事件回调函数中输出客户端发送过来的消息,而在 end 事件回调函数中输出客户端断开连接的消息。

接着,我们使用 server.listen() 开启监听,并在回调函数中输出开启成功的消息。

参考资料
  • Node.js v14.16.0 Documentation. Net Module. https://nodejs.org/docs/latest-v14.x/api/net.html