/// <summary> /// Marks a specific connection for graceful shutdown. The next receive or send to be posted /// will fail and close the connection. /// </summary> public void Shutdown(SocketShutdown socketShutdown) { try { trace.Debug("Shutting Down Socket to {0} Side = {1}", IPAddress, socketShutdown.ToString()); UnderlyingSocket.Shutdown(socketShutdown); } catch (Exception e) { trace.Error(e, "Non-fatal error shuttind down socket"); } }
public void Close() { try { try { UnderlyingSocket.Shutdown(SocketShutdown.Both); } catch (Exception e) { trace.Error(e, "Non-fatal error shutting down socket"); } UnderlyingSocket.Close(); } finally { var onClosedEvent = OnClosed; if (onClosedEvent != null) { onClosedEvent(this, EventArgs.Empty); } } }