Discussion:
Why can't I sendto() to 127.255.255.255
(too old to reply)
Abraham K. Mathen
2007-04-30 09:53:57 UTC
Permalink
Hello freebsd-hackers,
I wrote a short program (on FreeBSD 6.0), that attempts
to call sendto() on a UDP socket, with 127.255.255.255 as
the destination address. It failed - with errno 49 (EADDRNOTAVAIL).
Setting SO_BROADCAST and IP_ONESBCAST did not help.

After examining
- various RFC's,
- source code under /usr/src/sys/netinet/ and
- archives of freebsd-hackers & freebsd-net,
I have not been able to determine the reason.

Is it possible to successfully sendto() on a UDP socket
with 127.255.255.255 as the destination address? If yes,
how can that be done.

Specific questions :
----------------------------------------------------------
- Is it correct to understand that 127.255.255.255 is the
directed network broadcast address for net 127? If yes,
which RFC specifies that?

- If not, is 127.255.255.255 considered to be a host
address? If yes, which RFC specifies that?
----------------------------------------------------------

Could you please help me understand this?


sincerely

Mathen
(Abraham K. Mathen)

_________________________________________________________________
Mega Airfare Sale. Click here Now. http://ss1.richmedia.in/recurl.asp?pid=18
David S. Madole
2007-04-30 10:16:00 UTC
Permalink
From: Abraham K. Mathen on Monday, April 30, 2007 5:54 AM
I wrote a short program (on FreeBSD 6.0), that attempts
to call sendto() on a UDP socket, with 127.255.255.255 as
the destination address. It failed - with errno 49 (EADDRNOTAVAIL).
Setting SO_BROADCAST and IP_ONESBCAST did not help.
Perhaps because the matched route for that address points to lo0 on your system and lo0 is not a broadcast-capable interface?

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000

Note that there is no "BROADCAST" flag. Just a guess.

David

Loading...