X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=tcpsock.tex;h=ad5e2056685f04fe939aae1bc1db38698ac35c62;hp=bc65ae9a0eedba89548df77f7228f5839ab4f2e0;hb=d429b57bfd2108e922838756d4909251065a41f4;hpb=276ae7fb9a1e43b6d5e5944071848094c8cc2c3b diff --git a/tcpsock.tex b/tcpsock.tex index bc65ae9..ad5e205 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -3,7 +3,7 @@ %% Copyright (C) 2000-2004 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 "Prefazione", +%% Free Software Foundation; with the Invariant Sections being "Un preambolo", %% with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the %% license is included in the section entitled "GNU Free Documentation %% License". @@ -2980,7 +2980,7 @@ caso di nuovo il client non suppone che il programma server non venga terminato correttamente, ma si blocchi tutto senza la possibilità di avere l'emissione di un segmento FIN che segnala la terminazione della connessione. Di nuovo fintanto che la -connessione non si riattiva )con il riavvio della macchina del server) il +connessione non si riattiva (con il riavvio della macchina del server) il client non è in grado di fare altro che accettare dell'input e tentare di inviarlo. La differenza in questo caso è che non appena la connessione ridiventa attiva i dati verranno sì trasmessi, ma essendo state perse tutte le @@ -3146,8 +3146,8 @@ Si della nostra funzione \func{ClientEcho}, in grado di gestire correttamente l'intero flusso di dati fra client e server. Il codice completo del client, comprendente la gestione delle opzioni a riga di comando e le istruzioni per -la creazione della connessione, si trova nel file \texttt{TCP\_echo.c}, -distribuito coi sorgenti allegati alla guida. +la creazione della connessione, si trova nel file +\texttt{TCP\_echo\_fourth.c}, distribuito coi sorgenti allegati alla guida. La nuova versione è molto simile alla precedente di fig.~\ref{fig:TCP_ClientEcho_third}; la prima differenza è l'introduzione @@ -3400,9 +3400,9 @@ condizioni della rete. Inoltre deve essere specificato come viene classificato il traffico nella suddivisione fra dati normali e prioritari. In generale pertanto: \begin{itemize} -\item i dati trasmessi su un socket vengono considerati traffico normale, - pertanto vengono rilevati da una selezione con \const{POLLIN} o - \const{POLLRDNORM}. +\item i dati inviati su un socket vengono considerati traffico normale, + pertanto vengono rilevati alla loro ricezione sull'altro capo da una + selezione effettuata con \const{POLLIN} o \const{POLLRDNORM}; \item i dati \textit{out-of-band} su un socket TCP vengono considerati traffico prioritario e vengono rilevati da una condizione \const{POLLIN}, \const{POLLPRI} o \const{POLLRDBAND}. @@ -3410,6 +3410,10 @@ pertanto: viene considerato traffico normale, pertanto viene rilevato da una condizione \const{POLLIN} o \const{POLLRDNORM}, ma una conseguente chiamata a \func{read} restituirà 0. +\item la disponibilità di spazio sul socket per la scrittura di dati viene + segnalata con una condizione \const{POLLOUT}. +\item quando uno dei due capi del socket chiude un suo lato della connessione + con \func{shutdown} si riceve una condizione di \const{POLLHUP}. \item la presenza di un errore sul socket (sia dovuta ad un segmento RST che a timeout) viene considerata traffico normale, ma viene segnalata anche dalla condizione \const{POLLERR}.