Node.JS:重用套接字?

时间:2012-09-21 10:34:37

标签: node.js

我尝试执行此脚本:

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

啊?

Node已经在监听'tmp / test'了,它又会怎么听?

就像你不能允许两个应用程序在ONE PORT上监听一样,SOCKET也是如此。一个人应该只允许一个人。

答案 2 :(得分:0)

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

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

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