Там есть два вопроса.
Поиск адреса
Объявлена функция recvfrom
:
int recvfrom(
__in SOCKET s,
__out char *buf,
__in int len,
__in int flags,
__out struct sockaddr *from, /* <--- */
__inout_opt int *fromlen /* <--- */
);
Таким образом, вы можете использовать from
иfromlen
in sendto
.
sendto(..., (SOCKADDR *)from, *fromlen);
NAT
Блок NAT должен автоматически разрешить серверу « ответить » на дейтаграмму, отправленную клиентом,Таким образом, сам факт отправки клиентом дейтаграммы приводит к тому, что NAT-блок эфемерно (на несколько минут?) Открывает порт, чтобы разрешить возврат трафика.