private void HandleSocketError(SocketError error)
{
if (_logger != null)
_logger.TraceFormat("HandleSocketError: {0}", error);
if (_closeReason == 0)
_closeReason = (int)error;
_socket.Close();
if (_issueCountFlag.DecrementWithSetFlag())
ProcessClose();
}