Oltre a collegare un socket a un indirizzo locale o connetterlo a un indirizzo di destinazione, sorge la necessità di un meccanismo che permetta ai programmi applicativi di controllare i socket. Ad esempio, quando si usano protocolli che utilizzano il timeout e la ritrasmissione, il programma applicativo può voler ottenere o impostare i parametri di timeout, l'assegnazione dello spazio del buffer, l'elaborazione di dati fuori banda o determinare se il socket consente trasmissioni di tipo broadcast. Invece di aggiungere nuove funzioni per ogni nuova operazione di controllo, i progettisti hanno deciso di creare un singolo meccanismo che ha due funzioni: gestsockopt e setsockopt. La funzione gestsockopt consente all'applicazione di richiedere informazioni su un socket. La chiamata ha la forma seguente: getsockopt(socket, level, optionid, optionval, lenght). L'argomento socket specifica il socket per cui sono necessarie le informazioni, level identifica se l'operazione è applicata al socket stesso o ai protocolli sottostanti e optionid stabilisce l’opzione a cui si applica la richiesta. La coppia di argomenti optionval e lenght specifica due puntatori. Il primo contiene l'indirizzo del buffer in cui il sistema pone il valore richiesto e il secondo l'indirizzo di un intero in cui il sistema pone la lunghezza del valore dell'opzione. La funzione setsockopt consente al programma applicativo di impostare un'opzione di un socket usando l'insieme di valori ottenuto con getsockopt. Il chiamante specifica il socket e il nuovo valore dell'opzione. La chiamata a setsockpt ha la forma seguente: setsockpt(socket, level, optionid, optionval, lenght). Gli argomenti sono come quelli di getsockopt, tranne lenght che contiene la lunghezza dell'opzione che viene passata al sistema.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.