我有一个侦听端口的简单TCP服务器。
var net = require("net"); var server = net.createServer(function(socket) { socket.end("Hello!\n"); }); server.listen(7777);
我先将其启动node server.js,然后在Mac上使用Ctrl + Z将其关闭。当我尝试再次运行它时,出现node server.js以下错误消息:
node server.js
node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: listen EADDRINUSE at errnoException (net.js:670:11) at Array.0 (net.js:771:26) at EventEmitter._tickCallback (node.js:192:41)
我是否以错误的方式关闭程序?如何防止这种情况发生?
要结束程序,您应该使用Ctrl+ C。如果这样做,它会发送SIGINT,从而允许程序正常结束,并与正在侦听的任何端口解除绑定。
Ctrl
C
SIGINT
另请参阅:https : //superuser.com/a/262948/48624