0.0.0.0 IPAddress.Any 【】127.0.0.1 IPAddress.Loopback 【】localhost

0.0.0.0  IPAddress.Any

Provides an IP address that indicates that the server must listen for client activity on all network interfaces. This field is read-only.

The Socket.Bind method uses the Any field to indicate that a Socket instance must listen for client activity on all network interfaces.

The Any field is equivalent to 0.0.0.0 in dotted-quad notation.

127.0.0.1  IPAddress.Loopback

Provides the IP loopback address. This field is read-only.

The Loopback field is equivalent to 127.0.0.1 in dotted-quad notation.

127.0.0.1

This is a "fake" network adapter that can only communicate within the same host.

It's often used when you want a network-capable application to only serve clients on the same host.

127.0.0.1
127.0.0.1
/etc/hosts%WINDIR%
127.0.0.1
0.0.0.00.0.0.0
127.0.0.1
0.0.0.0

That hopefully answers the IP side of your question.

8080 => 4000127.0.0.1

blank3's comment on that is mostly right too.

The only thing is that you're not saying "all addresses should have access" -- that's done in your firewall(s) and/or the server software and/or other security layers like tcpwrappers.

0.0.0.0, in this context, means "all IP addresses on the local machine" (in fact probably, "all IPv4 addresses on the local machine").

So, if your webserver machine has two ip addresses, 192.168.1.1 and 10.1.2.1, and you allow a webserver daemon like apache to listen on 0.0.0.0, it will be reachable at both of those IPs.

But only to what can contact those IPs and the web port(s).

Note that, in a different context (routing) 0.0.0.0 usually means the default route (the route to "the rest of" the internet, aside from routes in your local network etc.).

补充:

如果本机的ip是192.168.1.18,在127.0.0.1:2020上进行监听;

尝试连接192.168.1.18:2020是无法连接的;