def connect(self):
		""" :meth:`.WNetworkClientProto.connect` method implementation
		"""
		exceptions = list(__basic_ftp_exceptions__)
		exceptions.append(OSError)  # OSError for "no route to host" issue
		exceptions.append(ConnectionRefusedError)  # for unavailable service on a host

		try:
			self.ftp_client().connect(**self.__ftp_connect_args)
			self.ftp_client().login(**self.__ftp_auth_args)
		except tuple(exceptions) as e:
			raise WClientConnectionError('Unable to connect to the server') from e
		try:
			path = self.uri().path()
			if path is None:
				path = self.directory_sep()
			self.change_directory(path)
		except WClientCapabilityError as e:
			raise WClientConnectionError(
				'Unable to change current working directory to the specified one'
			) from e