Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
513 views
in Technique[技术] by (71.8m points)

sockets - nodejs cannot resolve 'localhost' on windows

The following code produces an exception in node.js under windows:

var Socket = require("net").Socket;

socket = new Socket();
socket.connect(80, "localhost");

here's the message:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

When I remove localhost, it works fine. What could be causing this? I tried turning the firewall off, but to no effect.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

node.js uses c-ares resolver and ignores system resolver completely. So the advices regarding C:WINDOWSsystem32driversetchosts are probably irrelevant.

c-ares library reads certain system config files - e.g. on Windows and Cygwin it reads /etc/resolv.conf. So you should check if it reads /etc/hosts or C:WINDOWSsystem32driversetchosts. If it doesn't and doesn't have builtin support for localhost - then you will have to use 127.0.0.1


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...