в false, когда соединение закрыто.
CloseSocket(); }
/// <summary> /// Свойство закрытия соединения. /// </summary> void CloseSocket() { try { _socket.Shutdown(SocketShutdown.Both); _socket.Close(); // Свойство 'Connected' установлено в false, когда соединение закрыто. if (_socket.Connected) { throw new CoreException("При закрытии socket возникло исключение: " + Convert.ToString(System.Runtime.InteropServices.Marshal.GetLastWin32Error())); }
_socket = null; } catch (SocketException e) { throw new CoreException("Невозможно закрыть socket", e); } } /// <summary> /// Сброс переменных. /// </summary> void ResetVariables() { _authenticated = false; _status = null; _messagelist = null; }
/// <summary> /// Закрытие сеанса. /// </summary> public override void Dispose() { try { Quit(); ResetVariables(); } catch // Обработчик всех возникших исключений. { Debug.WriteLine("Невозможно закрыть socket"); }
GC.SuppressFinalize(this); } } }
Листинг 3.11.