accept()is for TCP. It has nothing to do with UDP.
connect()in UDP doesn’t do anything to the other end, it just conditions the local API to know who you are sending to and receiving from.
If you don’t already know that, or don’t care, or want to send to multiple destinations with the same socket, you don’t use
connect(), you use
sendto()instead. Similarly for receiving.
Consider a UDP server for example. It would call
recvfrom(),so it would get the source address information, process the request, create the response, and send it to that address via
connect()involved anywhere, ergo not possible to use either
It is only necessary to
bind()a server, because the clients need a fixed port number to send to. A client needn’t
bind()at all: an automatic bind() will take place on the first
send()/sendto()/recv()/recvfrom()using a system-assigned local port number.