MST

星途 面试题库

面试题:Node.js 中 TCP 服务器与客户端基本交互

请简述在 Node.js 中如何创建一个简单的 TCP 服务器,监听特定端口,并与客户端建立连接,实现简单的消息收发功能。同时说明如何处理连接断开和错误情况。
30.2万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

在Node.js中创建一个简单的TCP服务器并实现相关功能,可以按照以下步骤:

  1. 引入net模块:Node.js内置的net模块用于创建TCP服务器和客户端。
const net = require('net');
  1. 创建TCP服务器:使用net.createServer()方法创建服务器实例,并传入一个回调函数,该回调函数在每次有新连接时被调用。
const server = net.createServer((socket) => {
    // 处理新连接
    console.log('新客户端连接');
    // 监听客户端发送的消息
    socket.on('data', (data) => {
        console.log('收到消息:', data.toString());
        // 向客户端发送消息
        socket.write('服务器已收到你的消息');
    });
    // 处理连接断开
    socket.on('end', () => {
        console.log('客户端断开连接');
    });
});
  1. 监听特定端口:使用server.listen()方法让服务器监听指定端口。
const port = 3000;
server.listen(port, () => {
    console.log(`服务器正在监听端口 ${port}`);
});
  1. 处理错误情况:可以为服务器实例添加'error'事件监听器来处理错误。
server.on('error', (err) => {
    console.error('服务器错误:', err.message);
    // 如果是端口被占用等错误,可以在这里进行处理,比如尝试其他端口
});

完整代码如下:

const net = require('net');

const server = net.createServer((socket) => {
    console.log('新客户端连接');
    socket.on('data', (data) => {
        console.log('收到消息:', data.toString());
        socket.write('服务器已收到你的消息');
    });
    socket.on('end', () => {
        console.log('客户端断开连接');
    });
});

const port = 3000;
server.listen(port, () => {
    console.log(`服务器正在监听端口 ${port}`);
});

server.on('error', (err) => {
    console.error('服务器错误:', err.message);
});

总结:

  • 创建服务器:通过net.createServer()创建,传入处理新连接的回调。
  • 监听端口:使用server.listen()方法。
  • 消息收发:在连接回调中通过socket.on('data', ...)监听消息,使用socket.write()发送消息。
  • 连接断开:通过socket.on('end', ...)处理。
  • 错误处理:为服务器实例添加'error'事件监听器。