面试题答案
一键面试- 引入模块:
const net = require('net'); const fs = require('fs');
- 读取图片二进制数据:
const imageData = fs.readFileSync('image.jpg');
- 创建Socket服务器(假设作为服务端发送图片数据):
const server = net.createServer((socket) => { socket.write(imageData); socket.end(); }); server.listen(8080, () => { console.log('Server listening on port 8080'); });
- 创建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'); });
简述实现步骤:
- 引入
net
模块用于Socket通信,fs
模块用于文件操作。 - 使用
fs.readFileSync
读取图片的二进制数据。 - 若作为服务端,创建Socket服务器,在连接建立时将读取的图片二进制数据通过
socket.write
发送,并在发送完毕后调用socket.end
。 - 若作为客户端,创建Socket客户端连接到服务端,在
data
事件中接收并处理(如保存)接收到的图片二进制数据,在end
事件中确认数据接收完毕。