nulla garantisce che vengano forniti prima i dati relativi ai servizi di un
determinato protocollo o tipo di socket, se ne sono presenti di diversi. Se
allora utilizziamo il nostro programma potremo verificare il risultato:
-\begin{verbatim}
+\begin{Verbatim}
[piccardi@gont sources]$ ./mygetaddr -c gapil.truelite.it echo
Canonical name sources2.truelite.it
IPv4 address:
Indirizzo 62.48.34.25
Protocollo 17
Porta 7
-\end{verbatim}
+\end{Verbatim}
%$
Una volta estratti i risultati dalla \textit{linked list} puntata da
terminate dal carattere NUL, a meno che queste non debbano essere troncate
qualora la loro dimensione ecceda quelle specificate dagli argomenti
\param{hostlen} e \param{servlen}. Sono comunque definite le due costanti
-\const{NI\_MAXHOST} e \const{NI\_MAXSERV}\footnote{le due costanti sono
- definite in \file{netdb.h} ed hanno rispettivamente il valore 1024 e 12.}
-che possono essere utilizzate come limiti massimi. In caso di errore viene
-restituito invece un codice che assume gli stessi valori illustrati in
+\const{NI\_MAXHOST} e \const{NI\_MAXSERV}\footnote{in Linux le due costanti
+ sono definite in \file{netdb.h} ed hanno rispettivamente il valore 1024 e
+ 12.} che possono essere utilizzate come limiti massimi. In caso di errore
+viene restituito invece un codice che assume gli stessi valori illustrati in
tab.~\ref{tab:addrinfo_error_code}.
A questo punto possiamo fornire degli esempi di utilizzo diretto della nuova
-interfaccia, adottandola per rendere i nostri client
+interfaccia, adottandola per le precedenti implementazioni del client e del
+server per il servizio \textit{echo}; dato che l'uso delle funzioni (in
+particolare di \func{getaddrinfo} è piuttosto complesso, prevedendo una
+impostazione manuale dell'argomento \param{hints}, provvederemo una
+interfaccia semplificata per i due casi visti finora, quello in cui si
+specifica nel client un indirizzo remoto per la connessione al server, e
+quello in cui si specifica nel server un indirizzo locale su cui porsi in
+ascolto.
+
+La prima funzione è allora \func{sockconn}, che richiede la risoluzione di un
+indirizzo e di un servizio per connettere un socket allo stesso.
+
\section{Le opzioni dei socket}