protected override void OnDisconnected()
{
base.OnDisconnected();
// the channel will accept or send no more data, and hence it does not make sense
// to accept any more data from the client (and we surely won't send anything
// anymore)
//
// so lets signal to the client that we will not send or receive anything anymore
// this will also interrupt the blocking receive in Bind()
ShutdownSocket(SocketShutdown.Both);
}