X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=othersock.tex;h=2474abeda4ce0d219bf06d5988949703363eb06f;hp=b3eff100a6bb90821ca2806530032ca20335c654;hb=9b7af600ff0f73bc946c9d160c320667c7a91347;hpb=4e1da5b259a86278710be32441de7b88b9287ec1 diff --git a/othersock.tex b/othersock.tex index b3eff10..2474abe 100644 --- a/othersock.tex +++ b/othersock.tex @@ -1,6 +1,6 @@ %% othersock.tex %% -%% Copyright (C) 2004-2011 Simone Piccardi. Permission is granted to +%% Copyright (C) 2004-2015 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Un preambolo", @@ -70,8 +70,8 @@ fig.~\ref{fig:UDP_packet-exchange}. Come illustrato in fig.~\ref{fig:UDP_packet-exchange} la struttura generica di un server UDP prevede, una volta creato il socket, la chiamata a \func{bind} -per mettersi in ascolto dei dati. Questa è l'unica parte comune con un server -TCP: non essendovi il concetto di connessione le funzioni \func{listen} ed +per mettersi in ascolto dei dati, questa è l'unica parte comune con un server +TCP. Non essendovi il concetto di connessione le funzioni \func{listen} ed \func{accept} non sono mai utilizzate nel caso di server UDP. La ricezione dei dati dal client avviene attraverso la funzione \func{recvfrom}, mentre una eventuale risposta sarà inviata con la funzione \func{sendto}. @@ -167,7 +167,7 @@ prima di queste funzioni è \funcd{sendto} ed il suo prototipo\footnote{il \item[\errcode{EOPNOTSUPP}] il valore di \param{flag} non è appropriato per il tipo di socket usato. \item[\errcode{EPIPE}] il capo locale della connessione è stato chiuso, si - riceverà anche un segnale di \const{SIGPIPE}, a meno di non aver impostato + riceverà anche un segnale di \signal{SIGPIPE}, a meno di non aver impostato \const{MSG\_NOSIGNAL} in \param{flags}. \end{errlist} ed anche \errval{EFAULT}, \errval{EBADF}, \errval{EINVAL}, \errval{EINTR}, @@ -210,7 +210,7 @@ qualora si sia specificato un indirizzo è possibile ricevere un errore di Finora abbiamo tralasciato l'argomento \param{flags}; questo è un intero usato come maschera binaria che permette di impostare una serie di modalità di funzionamento della comunicazione attraverso il socket (come -\const{MSG\_NOSIGNAL} che impedisce l'invio del segnale \const{SIGPIPE} quando +\const{MSG\_NOSIGNAL} che impedisce l'invio del segnale \signal{SIGPIPE} quando si è già chiuso il capo locale della connessione). Torneremo con maggiori dettagli sul significato di questo argomento in sez.~\ref{sec:net_sendmsg}, dove tratteremo le funzioni avanzate dei socket, per il momento ci si può @@ -231,7 +231,7 @@ suo prototipo\footnote{il prototipo è quello delle \acr{glibc} che seguono le \funcdecl{ssize\_t recvfrom(int sockfd, const void *buf, size\_t len, int flags, const struct sockaddr *from, socklen\_t *fromlen)} - Riceve un messaggio ad un socket. + Riceve un messaggio da un socket. \bodydesc{La funzione restituisce il numero di byte ricevuti in caso di successo e -1 in caso di errore; nel qual caso \var{errno} assumerà il @@ -277,9 +277,9 @@ dell'indirizzo.\footnote{si ricordi che \ctyp{sockaddr} è un tipo generico che \param{from} e se è insufficiente l'indirizzo risulterà corrotto.} Al ritorno della funzione si otterranno i dati dell'indirizzo e la sua effettiva lunghezza, (si noti che \param{fromlen} è un valore intero ottenuto come -\itindex{value~result~argument} \textit{value result argument}). Se non si è -interessati a questa informazione, entrambi gli argomenti devono essere -inizializzati al valore \val{NULL}. +\textit{value result argument}). Se non si è interessati a questa +informazione, entrambi gli argomenti devono essere inizializzati al valore +\val{NULL}. Una differenza fondamentale del comportamento di queste funzioni rispetto alle usuali \func{read} e \func{write} che abbiamo usato con i socket TCP è che in