X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=tcpsock.tex;h=9d9f02b0922bbf231b95c60e8050b306bb9ee44b;hp=5378a2d79fdaa08aef39829a72406d3d15a35ea2;hb=5d621249af8897e27fc0a842a33e7a7ef3b9c2ca;hpb=a48e8dfeb4b05b57eab2336c7d2e0aaf6b9bd572 diff --git a/tcpsock.tex b/tcpsock.tex index 5378a2d..9d9f02b 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -1,6 +1,6 @@ %% tcpsock.tex %% -%% Copyright (C) 2000-2007 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2010 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", @@ -241,9 +241,9 @@ deve ancora eseguire la chiusura passiva a quello che sta eseguendo la chiusura attiva. Nella sequenza indicata i dati verrebbero persi, dato che si è chiuso il socket dal lato che esegue la chiusura attiva; esistono tuttavia situazioni in cui si vuole poter sfruttare questa possibilità, usando una -procedura che è chiamata \textit{half-close}; torneremo su questo aspetto e su -come utilizzarlo in sez.~\ref{sec:TCP_shutdown}, quando parleremo della -funzione \func{shutdown}. +procedura che è chiamata \itindex{half-close} \textit{half-close}; torneremo +su questo aspetto e su come utilizzarlo in sez.~\ref{sec:TCP_shutdown}, quando +parleremo della funzione \func{shutdown}. La emissione del FIN avviene quando il socket viene chiuso, questo però non avviene solo per la chiamata esplicita della funzione \func{close}, ma anche @@ -481,7 +481,7 @@ l'elenco delle porte assegnate dalla IANA (la \textit{Internet Assigned Number Authority}) ma l'elenco viene costantemente aggiornato e pubblicato su internet (una versione aggiornata si può trovare all'indirizzo \href{http://www.iana.org/assignments/port-numbers} -{\texttt{http://www.iana.org/assignments/port-numbers}}); inoltre in un +{\textsf{http://www.iana.org/assignments/port-numbers}}); inoltre in un sistema unix-like un analogo elenco viene mantenuto nel file \conffile{/etc/services}, con la corrispondenza fra i vari numeri di porta ed il nome simbolico del servizio. I numeri sono divisi in tre intervalli: @@ -2775,8 +2775,6 @@ sez.~\ref{sec:file_multiplexing} e non staremo a ripetere quanto detto l sappiamo che la funzione ritorna quando uno o più dei file descriptor messi sotto controllo è pronto per la relativa operazione. - - In quell'occasione non abbiamo però definito cosa si intende per pronto, infatti per dei normali file, o anche per delle pipe, la condizione di essere pronti per la lettura o la scrittura è ovvia; invece lo è molto meno nel caso @@ -3089,9 +3087,9 @@ valori: \item[\macro{SHUT\_WR}] chiude il lato in scrittura del socket, non sarà più possibile scrivere dati su di esso. Nel caso di socket TCP la chiamata causa l'emissione di un segmento FIN, secondo la procedura chiamata - \textit{half-close}. Tutti i dati presenti nel buffer di scrittura prima - della chiamata saranno inviati, seguiti dalla sequenza di chiusura - illustrata in sez.~\ref{sec:TCP_conn_term}. + \itindex{half-close} \textit{half-close}. Tutti i dati presenti nel buffer + di scrittura prima della chiamata saranno inviati, seguiti dalla sequenza di + chiusura illustrata in sez.~\ref{sec:TCP_conn_term}. \item[\macro{SHUT\_RDWR}] chiude sia il lato in lettura che quello in scrittura del socket. È equivalente alla chiamata in sequenza con \macro{SHUT\_RD} e \macro{SHUT\_WR}. @@ -3583,6 +3581,14 @@ quanto l'uscita anche a questo server le considerazioni finali di sez.~\ref{sec:TCP_serv_select}. + + + +\subsection{I/O multiplexing con \func{epoll}} +\label{sec:TCP_serv_epoll} + +Da fare. + % TODO fare esempio con epoll