当前位置:首页 > JavaScript

js实现tcp

2026-02-01 11:55:34JavaScript

使用Node.js实现TCP通信

Node.js内置的net模块提供了TCP通信的基础功能,可以创建TCP服务器和客户端。

创建TCP服务器

const net = require('net');

const server = net.createServer((socket) => {
    console.log('客户端已连接');

    socket.on('data', (data) => {
        console.log(`收到数据: ${data}`);
        socket.write(`服务器已收到: ${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('已断开与服务器的连接');
});

处理错误事件

TCP通信中需要处理可能的错误:

js实现tcp

socket.on('error', (err) => {
    console.error('连接错误:', err);
});

server.on('error', (err) => {
    console.error('服务器错误:', err);
});

自定义协议实现

对于复杂应用,通常需要自定义协议:

js实现tcp

// 使用分隔符处理消息边界
const DELIMITER = '\n';

socket.on('data', (data) => {
    const messages = data.toString().split(DELIMITER);
    messages.forEach(msg => {
        if(msg) console.log(`收到消息: ${msg}`);
    });
});

// 发送消息时添加分隔符
socket.write(`自定义消息${DELIMITER}`);

保持连接活跃

可以设置keepalive选项防止连接超时:

const server = net.createServer({
    keepalive: true,
    keepaliveInitialDelay: 10000
}, (socket) => {
    // 处理逻辑
});

性能优化建议

对于高并发场景,考虑使用连接池和负载均衡。Node.js的集群模块可以帮助利用多核CPU:

const cluster = require('cluster');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
} else {
    // 创建TCP服务器
}

标签: jstcp
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…