From: Caleb Clausen on
On 6/3/10, Joel VanderWerf <joelvanderwerf(a)gmail.com> wrote:
> Robert Klemme wrote:
>> 2. 0.0.0.0 cannot be used as a valid address to connect to - you get
>> EADDRNOTAVAIL as shown above.
>
> What surprised to me is that you *can* connect to 0.0.0.0. (It's not
> surprising that the connection actually goes to 127.0.0.1.)
>
> Try it on linux:

Huh. I find this surprising too.

So, I went and looked up chapter and verse of what the standard
actually says about this address. rfc 1812, the router requirements
rfc, lists 0.0.0.0 as primarily meaning 'this host', (section
4.2.2.11) but also says it has a nonstandard, obsolete meaning of the
all hosts broadcast address (but 255.255.255.255 is be be preferred)
(section 4.2.3.1). I was not aware of the first meaning; I just
thought it was a funky form of broadcast address. So I guess linux and
mac are correct in treating it like a loopback address.

Rfc 1812 talks about 'routers', but presumably what it says applies
generally to hosts, where it doesn't deal directly with routing. I
couldn't find anything relevant in the host requirements rfc (rfc
1123), or the rfc for ip itself (rfc 791), so presumably what 1812
says on this is as close to gospel as it gets.