nodejs 管道通讯
2023-12-14 19:36:14
概述
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 启动客户端
文章来源:https://blog.csdn.net/hongkid/article/details/134930994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!