2

サーバーでApacheを実行しています。私のアドレス xxxx:port に移動すると、index.html ページが /var/www に読み込まれます。サーバーを停止すると、接続できなくなります (すべて正常です)。

次に、ノード サーバーを起動しますnode server.js(以下の server.js ファイルも /var/www にあります)。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(port, 'x.x.x.x');
console.log('Server running at http://x.x.x.x:port/');

これによりエラーlisten EADDRNOTAVAILが発生しますが、他のノードサーバーを実行していません (このポートで実行されている他のプロセスはありません)。

また、IPアドレスを省略して、次のように聞いてみました:listen(port);

これはエラーを返しませんが、サーバーに接続できません (ブラウザの表示: Firefox can't establish a connection to the server at x.x.x.x:p.)

4

3 に答える 3

3

私は問題を発見しました。ホスト名を指定する必要はありません:

listen(port, 'x.x.x.x')

ただあるべき

listen(port)

そうしないと、サーバーは指定された IP に向けられたもの以外の接続を受け入れません。

于 2013-09-17T22:39:08.980 に答える
2

ポートが使用中または使用不可です。次のような別のポートを試してください。

listen(88, 'x.x.x.x');

接続するかどうかを確認します。また、xxxx が実際にサーバーの IP アドレスであることを確認してください。次のようにして、すべての IP でリッスンできます。

listen(88, '0.0.0.0');

または、host/ip セクションを完全に除外します。別のポートに接続する場合は、必要なポートを使用しているものを見つけるだけです。ポート 80 の場合は、次を使用します。

sudo netstat -tulpn | grep :80

そのポートを使用してプログラムを取得します。

于 2013-09-17T14:22:19.927 に答える