当前位置: 首页 > news >正文

nodejs 管道通讯

概述

2个nodejs程序的一种通讯方式,管道通讯,跟其他语言一样,管道通讯是一种特殊的socket通讯,普通的socket通讯是通过监听端口触发通讯机制,管道通讯是通过监听文件的方式进行通讯,一般用于单机的多进程通讯,这里演示的是2个node的进程间管道通讯,也可以是node跟其他语言生成的程序进行通讯,例如服务端是node的程序,客户端是exe程序,这样可以实现exe和node间的通讯。

直接上demo吧

服务端

const net = require('net');
let path = require('path');
let server = net.createServer(function (connect) {//connect.setEncoding('binary');connect.on('error', function (exception) {console.log('socket error:' + exception);connect.end();});//客户端关闭事件connect.on('close', function (data) {console.log('client closed!');});connect.on("data", function (data) {//server接受到client发送的数据console.log("接收到:" + data);//server给client发送数据	connect.write("你好");})
}).listen(path.join('\\\\?\\pipe', '\\getAppListDesktop'));
server.on("error", function (exception) {console.log("server error:" + exception);
});

客户端


let net = require('net');
let path = require('path');
let client = new net.Socket();
//client.setEncoding('binary');
client.connect(path.join('\\\\?\\pipe', '\\getAppListDesktop'), function () {//client给server发送数据client.write("你好,我是来自客户端");
});
client.on('data', function (data) {console.log("收到服务端消息: " + data);//此处接受到数据后就可以进行合适的处理了//client.end();
});
client.on('close', function () {console.log('Connection closed');
});
client.on('error', function (error) {console.log('error:' + error);client.destory();
})

运行方式

使用node 启动服务端

再使用node 启动客户端

http://www.lryc.cn/news/260332.html

相关文章:

  • k8s常用命令及示例(三):apply 、edit、delete
  • 前端页面显示的时间格式为:2022-03-18T01:46:08.000+00:00 如何转换为:年-月-日,并根据当前时间判断为几天前
  • UniGui使用CSS移动端按钮标题垂直
  • 0-50KHz频率响应模拟量高速信号隔离变送器
  • Linux系统下CPU性能问题分析案例
  • 【网络协议】LACP(Link Aggregation Control Protocol,链路聚合控制协议)
  • MATLAB 2018一本通 学习笔记一
  • 文献计量学方法与应用、主题确定、检索与数据采集、VOSviewer可视化绘图、Citespace可视化绘图、R语言文献计量学绘图分析
  • C#生成微信支付的Authorization签名认证
  • 平台工程与 DevOps 和 SRE 有何不同?
  • 算法-只出现一次的数字集合
  • Linux,Web网站服务(一)
  • Monkey工具之fastbot-iOS实践
  • 我想当个程序员
  • ACM32如何保护算法、协议不被破解或者修改
  • Android Studio(Flutter)常用快捷键
  • CSS特效030:日蚀动画
  • 746.使用最小花费爬楼梯
  • 【业务功能篇132】生产环境中出现oom问题,排查思路
  • 如何将html网页免费转为excel?
  • 手撕分布式缓存---HTTP Server搭建
  • 2. PyTorch——Tensor和Numpy
  • C#随笔 | List.Sort()使用小计
  • 【WebRTC】用WebRTC做即时视频聊天应用
  • GPT-4.5 要来了!谷歌大模型 Gemini 确实给够压力
  • 美易官方:加密资产将破坏金融稳定,无法取消就要加强监管
  • 一文读懂Java中的设计模式——适配器模式,对于兼容不同系统特别适用!
  • 2023年国内外评分前十的项目管理软件推荐
  • 3.electron之vue3.0的桌面应用程序
  • 数字图像处理(实践篇)二十二 使用opencv进行人脸、眼睛、嘴的检测