如何用节点监听192.168?

时间:2011-09-05 02:57:32

标签: node.js

我正在尝试收听192.168端口以从其他设备和计算机访问我的节点应用程序。我在这里做错了什么?我在Mac(OSX Lion)

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

2 个答案:

答案 0 :(得分:1)

离开地址,这是不必要的。然后通过访问浏览器中的http://192.168.1.122:1337从另一台计算机连接到它,假设它是本地网络中服务器的IP地址。

如果你想从其他地方(本地网络以外的计算机)访问它,你需要找到你的外部世界的ip地址(whatismyip.com很方便),然后确保你的路由器有端口1337指着122机器。然后通过该IP地址(和端口1337)

访问它

答案 1 :(得分:1)

以下是一些有用的错误消息:

  • EADDRNOTAVAIL如果您没有与该计算机关联的IP地址。
  • EACCES如果您尝试打开一个您无权访问的端口(端口< 1024作为用户)。
  • EADDRINUSE如果您尝试打开已打开的端口。

如果这些都不是您的问题,并且节点在实例化端口时没有崩溃,则您遇到防火墙或路由问题,并且应该从那里开始诊断,因为它很可能不是node.js问题。

在干净的盒子上运行此命令:

[jnovack@imac ~]$ node
> var http = require('http');
undefined
> http.createServer(function (req, res) {
...   res.writeHead(200, {'Content-Type': 'text/plain'});
...   res.end('Hello World\n');
... }).listen(1337);
{ domain: null,
  _events:
   { request: [Function],
     connection: [Function: connectionListener] },
  _maxListeners: 10,
  _connections: 0,
  connections: [Getter/Setter],
  allowHalfOpen: true,
  _handle:
   { writeQueueSize: 0,
     onconnection: [Function: onconnection],
     owner: [Circular] },
  httpAllowHalfOpen: false,
  _connectionKey: '4:0.0.0.0:1337' }
>

返回的对象显示已成功完成http.listen。