错误:侦听EACCES:在windows上的权限被拒绝



你好,

我一直在尝试让IPC服务器为子进程工作,以便相互通信。我按照这个SO答案(Node.js中的子进程之间的通信(尝试在两个子进程之间创建IPC服务器。然而,我在windows上得到了这个错误:

PS F:Node Projectscommunication-between-child-process-node-js> node parent
events.js:377
throw er; // Unhandled 'error' event
^
Error: listen EACCES: permission denied F:Node Projectscommunication-between-child-process-node-js/sibling.sock
at Server.setupListenHandle [as _listen2] (net.js:1314:21)
at listenInCluster (net.js:1379:12)
at Server.listen (net.js:1476:5)
at Object.<anonymous> (F:Node Projectscommunication-between-child-process-node-jsparent.js:17:10)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
at internal/main/run_main_module.js:17:47
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1358:8)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
code: 'EACCES',
errno: -4092,
syscall: 'listen',
address: 'F:\Node Projects\communication-between-child-process-node-js/sibling.sock',
port: -1
}

我做错了什么?我已经把所有的事情都安排好了。我认为这是windows的问题,但有人知道如何允许使用套接字吗?

由于您使用的是Windows,因此以下文档是相关的:

在Windows上,本地域是使用命名管道实现的。路径必须引用\?pipe\.pipe中的条目。允许使用任何字符,但后者可以对管道名称进行一些处理,例如解析..序列。不管它看起来如何,管道名称空间都是平面的。管道将不会持久存在。当对它们的最后一次引用关闭时,它们将被删除。与Unix域套接字不同,当拥有进程退出时,Windows将关闭并删除管道。

文档还显示了一个关于如何创建套接字文件路径的示例:

path.join('\\?\pipe', process.cwd(), 'myctl')

最新更新