gpt4 book ai didi

javascript - 连接到命名 Unix 域套接字 Node

转载 作者:行者123 更新时间:2023-12-03 06:00:47 25 4
gpt4 key购买 nike

我正在尝试通过nodejs 连接到一个命名的Unix 域套接字。我已经看到文档似乎支持连接到 Unix 套接字,但是我还没有看到任何通过名称连接到套接字的示例,而不是通过访问众所周知位置的套接字文件。

我可以清楚地看到我需要连接的套接字是使用 lsof (和一些 grepping)创建的:

COMMAND    PID  USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
run 5632 user 3u unix 0xffff8803dd4b6000 0t0 29647 @#user#5632#1 type=SEQPACKET

套接字的名称正在传递给实际运行我的 Node 脚本的脚本。我尝试过以下方法:

import net = require('net');
var socket;
var element = "#user#5632#1"; //Parsed from args
try {
socket = net.createConnection("@"+element,(error)=>{
if(error){
console.log(error)
}else{
console.log("Connection Established "+element);}
});
socket.on('error', function(err) {
console.log("Error: " + err);
});
} catch (error) {
console.error(error);
}

显然,我已经将其包裹起来以捕获几个地方的错误(在执行的不同点),但重点是 createConnection 抛出:

Error: Error: connect ENOENT @#user#5882#1

使用net.connect会导致完全相同的错误。

我测试了在一个众所周知的位置创建一个套接字(文件),并连接到 is,效果很好,但据我确定, Node ,或者至少是 net模块似乎不支持连接到临时套接字。

有人知道是否有办法做到这一点,或者我是否需要以不同的方式格式化我的套接字名称才能连接或真的有任何帮助吗?

最佳答案

Node 不支持 SEQPACKET 套接字。您可以向 Node 问题跟踪器提交 PR 作为功能请求以添加支持和/或者您可能需要编写一个 Node 插件来连接到 SEQPACKET 套接字。

关于javascript - 连接到命名 Unix 域套接字 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com