当前位置:首页 > 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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…