Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Disconnessione lenta socket

20 views
Skip to first unread message

Stefano

unread,
Jun 6, 2013, 10:24:43 AM6/6/13
to
Ciao,
nella mia applicazione scritta in C# 4.0, ho notato che la
disconnessione dal socket ᅵ piuttosto lenta (anche minuti)
Ovvero il tempo che intercorre tra:

m_socket.Shutdown(SocketShutdown.Both);
m_socket.BeginDisconnect(true, new
AsyncCallback(m_OnDisconnectCallback), m_socket);

e l'eventi di callback m_OnDisconnectCallback ᅵ particolarmente alto.
A cosa potrebbe essere dovuto?
Ciao. Stefano.


Julio Di Egidio

unread,
Jun 6, 2013, 11:39:34 AM6/6/13
to
"Stefano" <ormaioc...@tin.it> wrote in message
news:koq639$vej$1...@speranza.aioe.org...
E' "by design":

<https://en.wikipedia.org/wiki/Berkeley_sockets#Terminating_sockets>

Julio


Stefano

unread,
Jun 6, 2013, 1:02:19 PM6/6/13
to
Julio Di Egidio scriveva il 06/06/2013 :
Grazie, letto, interessante.
Nel mio caso ho visto che il rallentamento era dovuto alla serie di
chiamate nell'evento callback di ricezione nella classe asincrona che
ho creato.
Il metodo shutdown - opportunamente configurato - chiude il socket dopo
aver "smaltito" tutti i messaggi in invio/ricezione, quindi richiama
immediatamente il metodo asincrono di ricezione.
Nel mio caso, per mala progettazione, entrava in loop e quindi in
timeout.
Ho evitato il loop effettuando un test sullo stato della connessione e
comportandomi di conseguenza.
Grazie, ciao. Stefano.


Julio Di Egidio

unread,
Jun 6, 2013, 7:48:07 PM6/6/13
to
"Stefano" <ormaioc...@tin.it> wrote in message
news:koqfao$rb9$1...@speranza.aioe.org...
> Julio Di Egidio scriveva il 06/06/2013 :
>
>> E' "by design":
>> <https://en.wikipedia.org/wiki/Berkeley_sockets#Terminating_sockets>
>
> Grazie, letto, interessante.
> Nel mio caso ho visto che il rallentamento era dovuto alla serie di
> chiamate nell'evento callback di ricezione nella classe asincrona che ho
> creato.

Ho risposto alla tua domanda iniziale, dove parlavi di tempo intercorso fra
la BeginCallback e l'invocazione della callback stessa. Ma lieto che hai
risolto. I socket sono un argomento interessante, e a volte un bel
grattacapo.

Julio


0 new messages