internal virtual void close()
{
if (connectedChannel != null)
{
connectedChannel.Close();
}
else if (datagramChannel != null)
{
datagramChannel.Close();
}
else
{
ssl.Close();
readingQueue.Close();
writingQueue.Close();
try
{
socketReader.Join();
socketWriter.Join();
}
catch (System.Exception)
{
// ignore
}
}
}