2017-02-27 94 views
0

我在我的防火墙上运行了120端口,并且在我的服务器上打开ufw端口(Ubuntu 16.04) 但运行此代码时;Socket.io EADDRNOTAVAIL错误

var app = require('express')(); 
var http = require("http").createServer(app); 
var io = require("socket.io")(http); 
http.listen(120, "xxxx.xxx.xx"); 


io.on('connection',function(socket){ 
console.log("A user is connected"); 
}); 

我得到这个错误;

throw er; // Unhandled 'error' event 
    ^

Error: listen EADDRNOTAVAIL xxxx.xxxxxx:120 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at Server._listen2 (net.js:1224:19) 
    at listen (net.js:1273:10) 
    at net.js:1382:9 
    at nextTickCallbackWith3Args (node.js:452:9) 
    at process._tickCallback (node.js:358:17) 
    at Function.Module.runMain (module.js:444:11) 
    at startup (node.js:136:18) 
    at node.js:966:3 

回答

0

可能是端口120已被别的东西使用。

您可以使用netstat来看看什么是端口上侦听:

sudo netstat -plnt | grep ':120' 

提及的另一件事是,低端口有时保留或封锁 - 你可能只想尝试更高的端口,“1337 '总是对NodeJS有好处:-)

+0

我得到一些错误先生。我尝试了3000端口。但我也得到了一些错误:(这个代码块在Digital Ocen上工作,但不能在微软Azure上工作.. –

+1

当我写sudo netstat -plnt | grep'时有一样东西:120'我没有得到任何东西 –