(1) Поскольку я не вижу никакой ссылки на мой сокет, кроме указанного в вопросе, я бы сказал, что ваш ответ кажется правильным.
(2) Адрес / порт явно необходимы. Однако это может быть хитрый вопрос в том, что клиент может вызвать connect () на сокете. С помощью UDP, connect () ядро отслеживает адрес, переданный в вызове в качестве пира сокета. Затем сокет может просто вызвать write () или send (), вместо того, чтобы использовать sendto (). Тем не менее, для вызова connect все равно потребуется адрес / порт, поэтому кто знает, к чему они стремятся.
(3) В UDP нет «соединения». Многие клиенты могут отправлять на сервер. Сервер может получить адрес отдельных клиентов из своего recvfrom, а затем развернуться и использовать этот адрес в своем sendto.