maqbool
Getting the error {:error, :eacces} while trying to connect to an udp server on port 123
I was trying to connect to a NTP server using :gen_udp module but it seems anything below port 1000 is getting an error{:error, :eacces}
I am not sure why is that a case
Most Liked
Ankhers
That python code does not specify the port to open on the client. If it did, there would have been a third argument to socket.socket. Leaving out the third argument, which is the port number on the client, is the equivalent to passing 0 as the port to :gen_udp.open.
NobbZ
Only root is allowed to bind to ports less than 1024.
voltone
The port parameter in :gen_udp.open/1 is the local port on which the application receives datagrams. If you’re implementing a client you don’t need to bind to port 123, you can just let the OS pick an available (unprivileged) port: :gen_udp.open(0).
When you send datagrams to the server, using :gen_udp.send/4, you set the destination port to 123. You don’t need special permissions for that.
NobbZ
:gen_udp.open/1/2 opens the port to send and receive. If you just want to send datagrams without receiving, then using 0 as port is usually sufficient. Also remember, that open takes your local port, while the remote port is an argument to send/4. Both ports may be (and in fact almost ever are) different.
I do not know though, how pythons UDP implementation works.







