当前位置:首页 > JavaScript

js 实现 tcp

2026-02-01 04:39:39JavaScript

TCP 通信的 JavaScript 实现方法

在 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}`);
    socket.write(`ECHO: ${data}`);
  });

  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('Hello Server!');
});

client.on('data', (data) => {
  console.log(`收到回复: ${data}`);
  client.end();
});

client.on('end', () => {
  console.log('已断开与服务器的连接');
});

使用 WebSocket 作为替代方案

如果需要在浏览器环境中实现类 TCP 的双向通信,WebSocket 是最接近的替代方案。

浏览器端 WebSocket 示例

const socket = new WebSocket('ws://example.com/socket');

socket.onopen = () => {
  socket.send('Hello Server!');
};

socket.onmessage = (event) => {
  console.log(`收到消息: ${event.data}`);
};

使用 Socket.io 库

Socket.io 提供了更高级的抽象,支持自动重连和多种传输方式。

服务器端

const io = require('socket.io')(3000);

io.on('connection', (socket) => {
  console.log('新客户端连接');

  socket.on('message', (data) => {
    console.log(`收到: ${data}`);
    socket.emit('reply', `ECHO: ${data}`);
  });
});

客户端

const socket = io('http://localhost:3000');

socket.emit('message', 'Hello!');

socket.on('reply', (data) => {
  console.log(`服务器回复: ${data}`);
});

使用 WebRTC 数据通道

对于点对点通信需求,WebRTC 的 DataChannel 可以提供类似 TCP 的可靠传输。

建立数据通道示例

js 实现 tcp

const pc = new RTCPeerConnection();
const dc = pc.createDataChannel('channel');

dc.onmessage = (event) => {
  console.log(`收到: ${event.data}`);
};

dc.onopen = () => {
  dc.send('Hello Peer!');
};

注意事项

  • Node.js 的 net 模块仅适用于服务器端 TCP 通信
  • 浏览器环境必须使用 WebSocket 或 WebRTC 等高级协议
  • TCP 是面向流的协议,可能需要自定义消息边界处理
  • 生产环境应考虑添加错误处理和超时机制

标签: jstcp
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…