我有一个简单的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.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)
我关闭程序的方式是否错误?我怎样才能防止这种情况发生呢?
我的用例:在MacOS上,通过脚本在不同端口上运行/重新运行多个节点服务器
运行:“cd $PATH1 && node server1.js & cd $PATH2 && node server2.js &…”
stop1: "kill -9 $(lsof -nP -i4TCP:$PORT1 | grep LISTEN | awk '{print $2}')"
stop2 stop3…
重新运行:“stop1 & stop2 &…& stopN;运行
有关通过端口查找进程的更多信息:谁正在监听Mac OS X上的给定TCP端口?
我的用例:在MacOS上,通过脚本在不同端口上运行/重新运行多个节点服务器
运行:“cd $PATH1 && node server1.js & cd $PATH2 && node server2.js &…”
stop1: "kill -9 $(lsof -nP -i4TCP:$PORT1 | grep LISTEN | awk '{print $2}')"
stop2 stop3…
重新运行:“stop1 & stop2 &…& stopN;运行
有关通过端口查找进程的更多信息:谁正在监听Mac OS X上的给定TCP端口?