MST

星途 面试题库

面试题:Node.js中Socket二进制数据传输的基础实现

在Node.js中,使用Socket进行二进制数据传输,假设你要发送一张图片的二进制数据,简述实现步骤并给出关键代码片段。
39.4万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
  1. 引入模块
    const net = require('net');
    const fs = require('fs');
    
  2. 读取图片二进制数据
    const imageData = fs.readFileSync('image.jpg');
    
  3. 创建Socket服务器(假设作为服务端发送图片数据)
    const server = net.createServer((socket) => {
        socket.write(imageData);
        socket.end();
    });
    server.listen(8080, () => {
        console.log('Server listening on port 8080');
    });
    
  4. 创建Socket客户端(假设作为客户端接收图片数据)
    const client = net.connect({ port: 8080 }, () => {
        console.log('Connected to server');
    });
    client.on('data', (data) => {
        // 这里data就是接收到的图片二进制数据,可以进行保存等操作
        fs.writeFileSync('receivedImage.jpg', data);
    });
    client.on('end', () => {
        console.log('Data received completely');
    });
    

简述实现步骤:

  1. 引入net模块用于Socket通信,fs模块用于文件操作。
  2. 使用fs.readFileSync读取图片的二进制数据。
  3. 若作为服务端,创建Socket服务器,在连接建立时将读取的图片二进制数据通过socket.write发送,并在发送完毕后调用socket.end
  4. 若作为客户端,创建Socket客户端连接到服务端,在data事件中接收并处理(如保存)接收到的图片二进制数据,在end事件中确认数据接收完毕。