JS:是否可以在动态地址上使用(tcp)套接字进行监听?

JS: Is it possible to listen with a (tcp) socket on a dynamic address?

是否可以在动态地址上使用 (tcp) 套接字进行侦听? 就像我想使用 my-website.net 代替 public IP。

这是我的代码:

window.addEventListener('DOMContentLoaded', () => {

  var server = net.createServer(function(socket) {
    socket.write('Echo server\r\n');
    socket.pipe(socket);
  });
  server.listen('1337', 'my-website.net');
})

我收到这个错误:

Uncaught Error: listen EADDRNOTAVAIL: address not available [IP Censored]:1337 at Server.setupListenHandle [as _listen2] (VM89 net.js:1301) at listenInCluster (VM89 net.js:1366) at GetAddrInfoReqWrap.doListen [as callback] (VM89 net.js:1503) at GetAddrInfoReqWrap.onlookup [as oncomplete] (VM101 dns.js:69)

(我转发了所有端口,它确实适用于 127.0.0.1) 错误是什么意思?静态动态 IP 不起作用?

据我了解,您获得了一个动态 ip 并使用了一些动态 ip 服务,例如 dyndns.org。有两种方法...第一种会很复杂,你必须每隔几秒检查一次地址,然后停止服务器并监听你当前获得的 ip。不是最好的解决方案。其他方法是监听 0.0.0.0 - 这基本上意味着监听您在系统中获得的每个 IP。因此,如果 IP 发生变化,也没关系,因为它会始终监听每个接口。

您收到的错误意味着 none 个网络接口具有该 IP。您是否正在使用路由器并获取本地 IP 192.x.x.x?然后你应该在你的路由器上设置端口转发并监听连接到它的你的适配器的本地 IP。