 		}
 	}
 	
+	// MARK: - Disconnecting
+	
+	/// Disconnects immediately (synchronously).
+	///
+	/// If the socket is not already disconnected, an invocation to the
+	/// socket:didDisconnectWithError: delegate method will be queued onto the delegateQueue
+	/// asynchronously. In other words, the delegate method will be invoked sometime shortly
+	/// after this method returns.
 	public func disconnect() {
 		self.disconnect(withError: nil)
 	}

	private var inputStream: InputStream?
	private var outputStream: OutputStream?
	
	// MARK: - 
	
	public var delegate: TCPSocketDelegate? {
		get {

		}
	}
	
	// MARK: - Private section
	
	private func cInputStream(_ stream: Stream, event: Stream.Event) {
		switch event {
