这很奇怪我在CentOS 7服务器上尝试了至少30个用于快速应用程序的端口,我不断获取:
Uncaught Exception: listen EADDRINUSE :::1238
[ERROR] Stack Trace: Error: listen EADDRINUSE :::1238
at Object.exports._errnoException (util.js:1026:11)
at exports._exceptionWithHostPort (util.js:1049:20)
at Server._listen2 (net.js:1253:14)
我尝试了各种不同的端口,我很确定没有使用这些端口,但我不断收到此错误。
这是我的快递代码:
import http from 'http';
import express from "express";
import compression from 'compression';
import SocketIO from "socket.io";
let App = express();
let HTTPServer = http.Server(App);
let Socket = new SocketIO(HTTPServer);
App.use(compression({}));
HTTPServer.listen(1238, function() {
console.log("Listening..");
});
我检查防火墙是关闭的,没有什么应该阻止应用程序。我在端口8080上还有一个应用程序runnig就好了。我只是不能让这个工作。有什么想法吗?
答案 0 :(得分:2)
当您在这些端口停止程序时,也许您的进程不会停止。 尝试在终端中运行这些命令。
lsof -i:<your port number>
如果你有一张表,那就意味着你的进程没有被杀死,从那个表中复制那个PID并运行这个命令
kill -9 <PID>
这将终止在该端口上运行的进程,之后,您可以将此端口用于您的程序。
我在ubuntu中测试过这些命令,我不知道CentOS,但两者都是Linux,所以你可以试试这个。