X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=tcpsockadv.tex;h=991fe0494a2590eac0e2ade576fd81e167d1d7df;hp=91a5ada2f0cf7036f8a7222d4b3f3f46dc9b7e12;hb=ed87bed5dc48e51b22e087d9daf411b430f8c536;hpb=4f95b93378891eaae9229eb1b418618dd9525db2 diff --git a/tcpsockadv.tex b/tcpsockadv.tex index 91a5ada..991fe04 100644 --- a/tcpsockadv.tex +++ b/tcpsockadv.tex @@ -806,8 +806,8 @@ ciclo (\texttt{\small 28--54}) prosegue fintanto che il numero di file descriptor attivi, mantenuto nella variabile \var{n}, è diverso da zero. Se pertanto ci sono ancora socket attivi da individuare si comincia con l'incrementare (\texttt{\small 30}) l'indice e controllare (\texttt{\small - 31}) se corrisponde ad un file descriptor in uso, analizzando il valore del -campo \var{fd} della relativa struttura, e chiudendo immediatamente il ciclo + 31}) se corrisponde ad un file descriptor in uso analizzando il valore del +campo \var{fd} della relativa struttura e chiudendo immediatamente il ciclo qualora non lo sia. Se invece il file descriptor è in uso si verifica (\texttt{\small 31}) se c'è stata attività controllando il campo \var{revents}. @@ -829,6 +829,11 @@ Se invece si sono letti dei dati si provvede (\texttt{\small 48}) ad effettuarne la riscrittura all'indietro, con il solito controllo ed eventuale uscita e notifica in caso si errore (\texttt{\small 49--52}). +Come si può notare la logica del programma è identica a quella vista in +\figref{fig:TCP_SelectEchod} per l'analogo server basato su \func{select}; la +sola differenza significativa è che in questo caso non c'è bisogno di +rigenerare i file descriptor set in quanto l'uscita è indipendente dai dati in +ingresso. \section{Le opzioni dei socket}