Cosa fa un client quando ha datagrammi UDP da inviare?
- Il descrittore del socket
- Un puntatore al buffer contenente i dati da inviare
- La lunghezza dei dati da inviare
- Le bandiere
- L'indirizzo di destinazione
- La lunghezza dell'indirizzo di destinazione
Il client deve inoltre specificare l'indirizzo di destinazione e la porta del server a cui desidera inviare i dati. Queste informazioni possono essere ottenute risolvendo il nome di dominio o l'indirizzo IP del server utilizzando le chiamate di sistema `gethostbyname()` o `gethostbyaddr()`.
Una volta che il client ha inviato il datagramma, può attendere una risposta dal server. Il client può farlo utilizzando la chiamata di sistema `recvfrom()`, che si bloccherà finché non verrà ricevuto un datagramma. La chiamata di sistema `recvfrom()` richiede i seguenti argomenti:
- Il descrittore del socket
- Un puntatore al buffer in cui memorizzare i dati ricevuti
- La lunghezza massima dei dati ricevuti
- Le bandiere
- Un puntatore all'indirizzo di origine
- Un puntatore alla lunghezza dell'indirizzo di origine
Quando il client riceve un datagramma, può quindi elaborare i dati e inviare una risposta al server, se necessario.