js 实现 tcp
在JavaScript中实现TCP通信通常依赖于Node.js环境,因为浏览器端的JavaScript受限于安全策略,无法直接操作TCP协议。以下是两种常见的实现方式:
使用Node.js的net模块
Node.js内置的net模块提供了TCP客户端和服务端的实现。
TCP服务器示例代码:

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('客户端断开连接');
});
});
server.listen(8080, () => {
console.log('服务器监听端口8080');
});
TCP客户端示例代码:
const net = require('net');
const client = net.connect({ port: 8080 }, () => {
console.log('连接到服务器');
client.write('客户端发送的数据');
});
client.on('data', (data) => {
console.log('收到服务器响应:', data.toString());
client.end();
});
client.on('end', () => {
console.log('断开与服务器的连接');
});
使用WebSocket实现类TCP通信(浏览器环境)
浏览器中可通过WebSocket模拟TCP的双向通信,需配合WebSocket服务器。

浏览器端代码:
const socket = new WebSocket('ws://localhost:8080');
socket.onopen = () => {
socket.send('浏览器发送的数据');
};
socket.onmessage = (event) => {
console.log('收到服务器消息:', event.data);
};
Node.js WebSocket服务器示例(使用ws库):
npm install ws
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (message) => {
console.log('收到消息:', message);
ws.send('服务器响应');
});
});
注意事项
- Node.js的
net模块:适用于原生TCP场景,如IoT设备通信或后端服务。 - WebSocket:适用于浏览器与服务器的实时双向通信,如聊天应用。
- 安全性:TCP通信需自行处理加密(如TLS),而WebSocket默认支持
wss://加密。
根据需求选择合适方案,Node.js原生TCP性能更高,WebSocket则兼容浏览器环境。






