node学习之路(四)net模块实现tcp通信

基于node的net模块实现electron的管道通信 electron分了主进程和渲染进程, 如果在主进程中执行的时间过长会导致页面卡顿,因为主进程管理者渲染器进程,为了优化,做了很多的一个方案... 阅读详情

点击进入官网net模块API
在node中net模块专门用于tcp服务器和tcp客户端的通信。

1.实现步骤如下

创建tcp连接
var server=net.createServer([options],[callBackFunc1]);
监听客户端请求
server.listen(port,[host],[backlog],[callbackFunc2]);
参数说明
callBackFunc1(可选参数,当服务器端和客户端成功连接时调用此函数。其相当于连接时触发的connection函数。);
callBackFunc2(可选参数,当服务器监听事件触发后调用此函数。PS:应该是在服务器端和客户端成功连接之前触发。)

2.server的事件

server事件如下:
connection(建立连接时) close(连接关闭时) error(连接出错时) listen(监听客户端)
server中常用的方法:
address() close()

1)connection事件触发时的回调函数中存在参数socket(当服务器端和客户端成功连接后返回的socket对象。)
socket对象中的常用方法:address(),pause() resume(),connect(),ref(),unref()
2)error事件(连接出错时触发) 回调函数中的参数是错误类型。

server.on("error",function(e){
console.log(e)//e为错误类型
});

3.socket端口对象

1)address()方法使用

`server.on("connection",function(socket){
     var address=socket.address();
 });

注:address的值具有的属性如下
port(连接客户端的端口号)
address(socket端口所属的ip地址)
family(IP地址的类型“ipv4”)

2) pause()和resume()方法

`server.on("connection",function(socket){
     socket.pause();
     //暂停socket的data事件触发此时服务端会将客户端的数据暂存在一个单独的缓存区
     socket.resume();
     //恢复socket的data事件触发
 });

3)pipe()将客户端发送的数据书写到文件或其他目标对象中

var file=require("fs").createWriteStream("../test.txt");
`server.on("connection",function(socket){
socket.pipe(file,[options]);
//file 为必须的参数,表示写入数据的对象。options为可选的
}

4)setTimeout(timeout,callback);用来设置客户端连接的超时时间

`server.on("connection",function(socket){
socket.setTimeout(5,function(){
console.log("连接5秒了!");
//连接超时后调用的函数;并且此时会触发timeout事件
});
socket.on("timeout",function(){
console.log("连接超时");
});
}

5)socket可触发的事件
data(客户端发送数据时触发)
timeout(连接超时触发此事件)
connect(客户端的事件,当一个套接字连接成功建立了发出的。在server的connection事件之后触发);
error(客户端触发的事件)
close(客户端触发的事件)

注:本文仅列出net模块中常用的部分知识。详情请查看net的API文档。

【Node】Node实现网络编程 Node实现网络编程 阅读详情

相关推荐

LTspice introduction - 2 LTspice的界面

LTspice的界面主要有两个:Schematic Capture和Waveform Viewer Schematic Capture 它主要是用来画电路图的,画完电路图之后,添加一些dot 命令同时选择一些仿真的参数,点击执行(Run)Waveform Viewer 如果你的仿真不是op point的话,一个都会打开它,在它里面你可以画图相应的图形。 有两种方式可以在Viewer

贾亮的专栏 3221

Node.js网络编程之TCP、UDP、HTTP、HTTPS篇

Node是一个面向网络而生的平台,它具有事件驱动、无阻塞、单线程等特性,具备良好的可伸缩性,使得它十分轻量,利用Node可以十分方便地搭建网络服务器。Node提供了net、dgram、http、https这4个模块,分别用于处理TCP、UDP、HTTP、HTTPS, 适用于服务器端、客户端;浅入Node.js之网络编程, 如何构建TCP、UDP、HTTP、HTTPS简单服务;如何解决TCP数据粘包;如何利用openssl生成公钥和私钥;

zxl1990_ok的博客 2506

多目标进化算法——NSGA-II(python实现)

NSGA-II(python实现)--最全注释,痴呆能懂--

no___good的博客 5279

node.js中net模块、node实现tcp通信

node.js中net模块、node实现tcp通信

专研前端,探索后端 5215

PaddleOCR多进程GPU推理实战:200万图片高效处理方案

本文详细介绍了PaddleOCR多进程GPU推理在高效处理200万张图片OCR任务中的实战方案。通过优化GPU利用率、多进程并发和关键参数调优,实现了从单进程3000张/小时到8进程3万张/小时的性能飞跃,为大规模OCR处理提供了可靠解决方案。

prometheus9mon的博客 261

SiamFC++笔记

SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 文章根据这些思路:引入分类和目标状态估计分支(G1),无歧义的分类得分(G2),无先验知识的跟踪(G3)和评估质量得分(G4)来设计SiamFC ++。 SiamRPN ++和SiamFC ++的比较(红色部分代表得分高的区域): guide: G1 : 分类和状态估计任务的分离:分类任务将目标从干扰物和背景中分类出来,目标状态

木木JL的博客 9433

Linux文件/proc/net/tcp

Linux文件/proc/net/tcp分析

phone1126的专栏 3036

华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 269

官方详解/proc/net/tcp

我们编写网络程序经常用到netstat -anpt 查看链接信息,这些信息本质都市来源于/proc/net/tcp  以下是每一行的详解 It will first list all listening TCP sockets, and next list all established TCP connections. A typical entry of /proc/net/tcp

伍意的博客 6151

【光斑定位】空间激光通信、光斑定位、CCD、光斑定位——13000字

0.完整源码获得方式 订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码 ----------------------------------------------------------------- 空间激光通信是指以光波作为载波进行数据传输的一种通信方式。目前,空间激光通信己成为人们关注的焦点。在空间激光通信系统中,光斑定位是是一项关键技术。 本论文首先对国内外空间激光通信系统的研究现状进行了阐述,论述了空间激光通信的理论只是,并对CCD成像原理,...

FPGA/MATLAB学习教程/源码/项目合作开发 1290

OpenClaw 开机自启配置:Windows/macOS/Linux 全平台技术指南

OpenClaw 开机自启全平台配置指南 本文提供了在Windows、macOS和Linux系统上配置OpenClaw开机自启的完整技术方案。主要内容包括: Windows配置:提供三种方法(Windows服务、任务计划程序、启动文件夹),详细说明服务脚本创建、服务注册和测试流程 macOS配置:使用LaunchAgent实现开机自启,包含配置文件创建和加载方法 Linux配置:通过systemd服务实现,包括服务单元文件创建和启用步骤 系统要求:明确硬件(64位CPU/4GB内存)和软件(各平台操作系统版

一键难忘的博客 2993

Node.js之TCP服务(net模块)

Node.js的net模块提供了创建TCP服务器和客户端的能力。TCP是面向连接的可靠传输协议,与UDP相比,它保证数据顺序和完整性但速度较慢。通过net.createServer()可创建TCP服务器,监听connection、data、close等事件处理客户端连接。服务器可以设置超时、编码格式,并管理多个连接。TCP适用于需要可靠传输的场景,如HTTP、文件传输等,而UDP更适合实时性要求高的应用如视频流和游戏。

在所有的事情背后,要有一颗坚定的的本心,要有一颗应对变革和提升自我的本心,世界瞬息万变,本心要坚持到底,保持学习,时刻复盘 1123

ESP32-C3入门教程 WiFi篇①——WiFi Scan 扫描附近AP无线热点 | 堵塞等待扫描结果,回调事件通知扫描结果

文章目录一、快速运行二、运行效果三、程序流畅四、关键函数4.1 扫描所有有效的AP4.2 获取上次扫描中找到的AP列表4.3 获取上次扫描中找到的AP数 一、快速运行 示例项目中,选择WiFi—>scan menuconfig配置ESP32C3-Specific—>Rec 0 芯片选择ESP32-C3(Built-in USB JTAG) 快速运行ESP-IDF Build, Flash and Monitor(左下角) 二、运行效果 三、程序流畅 esp_netif_init,初始

5417

node.js之net模块

net模块是Node.js的核心模块之一,net模块主要用于创建TCP服务器和TCP客户端,以及处理网络通信。net.Servernet.Socketnet.Socketnet.Socketnet.ServerSocket 是对 TCP/IP 协议族的一种封装,是应用层与TCP/IP协议族通信的中间软件抽象层。它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

gaotlantis的博客 1194

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Node.js教程-net模块

net模块是Node.js官方提供的用于底层网络通信的模块,包含了创建服务器/客户端的方法。

旺仔的博客 2222

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Node.js里面 Net 模块的介绍和使用

序号方法 & 描述1创建一个 TCP 服务器。参数 connectionListener 自动给 'connection' 事件创建监听器。2返回一个新的 'net.Socket',并连接到指定的地址和端口。当 socket 建立的时候,将会触发 'connect' 事件。3创建一个到端口 port 和 主机 host的 TCP 连接。host 默认为 'localhost'。4创建一个端口为 port 和主机为 host的 TCP 连接。

1423

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

node net模块

node net模块 node中网络通信支持 UDP 和 TCP 两大传输协议; 我们今天来讲 TCP .(TCP 协议在node的net 模块中) TCP 大致了解一下 TCP (网络传输协议) 支持面向连接的传输服务 支持字节流的传输 支持全双工 支持多个同时并发的TCP连接 支持可靠的传输服务 支持面向连接的传输服务 端到端的传输: 程序双方都通过端口号来标识 应用程序在使用TCP传输数...

学习真香 691

Node.js net 模块教程

Node.js 的net模块提供了用于实现 TCP 服务器和客户端的异步网络 API。它是 Node.js 网络功能的核心,为上层模块如 HTTP、HTTPS 等提供了基础支持。本教程将全面介绍net模块的使用方法和最佳实践。

wscfan的博客 1647

学习node.js 十二 net模块,puppeteer的使用

Puppeteer是一个由Google开发和维护的Node.js库,它提供了一个高级的API,用于通过Headless Chrome或Chromium控制和自动化网页操作。它可以模拟用户在浏览器中的交互行为,例如点击、填写表单、截屏、生成PDF等,同时还能够获取网页的内容和执行JavaScript代码。自动化浏览器操作:Puppeteer可以以无头模式运行Chrome或Chromium,实现对网页的自动化操作,包括加载页面、点击、表单填写、提交等。if(text === (te || '前端')){

tian_liang_jia的博客 939

Node实现 Socket 通信

本篇讲的是在线聊天系统的基础,即socket通信,通过socket可以实现客户端之间的通信,如像日常使用的QQ,微信一样的实现通信,那么本篇就通过Node.js中的Socket来实现通信效果,之后会有篇目讲WebSocket和Socket.io;

灵魂学者的博客 3236

Node 学习八、通信之 02 创建 TCP 通信、数据粘包、数据封包与拆包

创建 TCP 通信 使用 NodeJS 提供的内置模块创建 TCP 的服务端与客户端的实例,然后让两者进行通信。 Net 模块实现了用于底层通信的接口,可以直接创建基于流操作的(TCP或IPC 的)服务端和客户端。 通信过程 创建服务端:接收和回写客户端数据 创建客户端:发送和接收服务端数据 数据传输:内置服务事件和方法读写数据 通信事件 关于连接的常用事件: listening 事件:调用 server.listen 方法之后触发 connection 事件:新的连接建立时触发,也就是服务端每次收到

皮蛋很白的博客 2756

探索Node.js的Net模块:构建强大网络应用的基石

Net 模块是 Node.js 官方提供的用于底层网络通信的核心模块,主要用于创建 TCP 服务器和 TCP 客户端,实现网络通信功能。它提供了一系列方法和事件,帮助开发者轻松地处理网络连接、数据传输和断开连接等操作。在网络编程中,Net 模块扮演着至关重要的角色,无论是开发简单的网络工具,还是构建复杂的网络应用,都离不开它的支持。通过 Net 模块,我们可以深入了解网络通信的底层机制,实现高效、可靠的网络数据传输。

yan1915766026的博客 1593

【Node.js基础篇】(十)使用net模块和Readline模块实现Socket通信

Node.js的socket通信和C++、Java的非常相像,学过这两种语言的socket通信的同学可以很快就掌握好Node.js的socket通信。下面我们以实现一个Echo服务器的服务端和客户端为目的,学习一下Node.js的socket通信。 所谓的Echo服务器指的是这样一种服务器:客户端发送一条消息给服务端,服务端就把这条消息原封不动地返回给客户端。 服务端服务端的实现分为三步: -

zgljl2012的专栏 3565

tcp port numbers reused出现原因_入门 Node.js Net 模块构建 TCP 网络服务

愿每次回忆,对生活都不感到负疚。——郭小川想做一个简单的 Web API,这个时候就需要搭建一个 Web 服务器,在 ASP.NET 中需要 IIS 来搭建服务器,PHP 中需要借助 Apache/Nginx 来实现,对于新手在还没开始之前看到这么多步骤,也许就要放弃了,但是在 Node.js 中开启一个 Web 服务器是 So Easy 的,我们利用 Net、Dgram、HTTP、HT...

weixin_39538536的博客 1212

Node核心模块之Net

Node核心模块之NetNode.js v6.9.4Net模块提供一个异步网络包装器,它能够创建被称为流的TCP服务器和客户端。一个实例* 创建TCP服务器 *const net = require('net'); let server = net.createServer((socket) => { socket.on('data', (data) => { console

zza000000的博客 2073

Node.js net模块详解

通过掌握这些 API,可以构建高效的 TCP 服务器和客户端,适用于实时通信、微服务等场景。模块提供了基于 TCP 或 IPC 的网络通信能力,用于创建服务器和客户端。设置连接超时时间(毫秒),超时后触发回调并自动销毁连接。半关闭连接(发送 FIN 包),可选发送最后一段数据。表示 TCP 或 IPC 的客户端或服务器端连接。停止服务器接受新连接,关闭现有连接后触发回调。另一端发送 FIN 包(结束连接)时触发。),降低延迟,适用于高频小数据包场景。发生错误时触发(如连接被重置)。

橘导的博客 1030
上一篇: node学习之路(三)文件操作
下一篇: vue2.x 项目搭建
厌笔不萧生
博客等级 码龄10年 5粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值