def connect(self, header_list = ()): """connect(self, header_list = ()) Sends a connection message to the server and returns its response. Typically, the response is either Success or a subclass of FailureResponse. Specific headers can be sent by passing a sequence as the header_list keyword argument. """ if not self._external_socket: self.socket = Socket() self.socket.connect((self.address, self.port)) flags = 0 data = (self.obex_version.to_byte(), flags, self.max_packet_length) max_length = self.max_packet_length request = requests.Connect(data) header_list = list(header_list) response = self._send_headers(request, header_list, max_length) if isinstance(response, responses.ConnectSuccess): self.remote_info = response for header in response.header_data: if isinstance(header, headers.Connection_ID): # Recycle the Connection ID data to create a new header # for future use. self.connection_id = headers.Connection_ID(header.decode()) elif not self._external_socket: self.socket.close() return response