On Mon, 2016-10-24 at 14:54 +0200, Jiri Slaby wrote:
> Hello,
>
> as per man 7 udp:
> In order to receive packets, the socket can be bound to
> a local address first by using bind(2). Otherwise,
> the socket layer will automatically assign a free local
> port out of the range defined by /proc/sys/net/ipv4
> /ip_local_port_range and bind the socket to INADDR_ANY.
>
> I did not know that bind is unneeded, so I tried that. But it does not
> work with this piece of code:
> int main()
> {
> char buf[128];
> int fd = socket(AF_INET, SOCK_DGRAM, 0);
> recv(fd, buf, sizeof(buf), 0);
> }
autobind makes little sense at recv() time really.
How an application could expect to receive a frame to 'some socket'
without even knowing its port ?
How useful would that be exactly ?
How TCP behaves ?
I would say, fix the documentation if it is not correct.