繁体   English   中英

Node.JS:重用套接字?

[英]Node.JS: Reusing sockets?

我尝试执行此脚本:

require('net').createServer().listen('/tmp/test');

第一次脚本成功运行,但在第二次启动时 node.js 抛出错误:错误:监听 EADDRINUSE

有没有办法重用套接字(unix 和 tcp 也是)?

显然,您第一次调用的脚本/侦听器/服务器仍在运行。 您必须终止正在侦听的脚本/进程才能再次使用相同的端口。

是吧?

节点已经在监听'tmp / test',它将如何再次监听呢?

就像您不允许两个应用程序监听一个端口一样,SOCKET也是如此。 一个只能由一个允许。

“正确”的方法(根据 Node.js 文档)是使用server.close()关闭服务器,这会从文件系统中删除创建域套接字。

因此,如果您再次运行服务器,则不会出现“EADDRINUSE”错误,因为它每次都会重新创建|删除一个新的域套接字。

在 Windows(带有命名管道)上我们没有这个问题,一旦服务器进程关闭,操作系统会自动删除创建的命名管道

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM