%% 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",
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
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
\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}.
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