docs: def disconnect(self, message=""):
          """Hang up the connection and close the object.
  
          Arguments:
  
              message -- Quit message.
          """
          try:
              del self.connected
          except AttributeError:
              return
  
          try:
              self.socket.shutdown(socket.SHUT_WR)
              self.socket.close()
          except socket.error:
              pass
          del self.socket
          self.reactor._handle_event(
              self,
              Event("dcc_disconnect", self.peeraddress, "", [message]))
          self.reactor._remove_connection(self)