[英]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.