示例#1
0
    def login(self, tracker_ip, tracker_port = 80):
        try:
            login_sock = connect_socket(tracker_ip, tracker_port)
            login_sock.send("LOGI")
            login_sock.send(format_ip_address(get_local_ip(login_sock.getsockname()[0])))
            login_sock.send(format_port_number(self.local_port))


            response = read_from_socket(login_sock, 4) #read ALGI
            if response == "ALGI":
                my_session_id = read_from_socket(login_sock, 16)
                login_sock.close()

                UsersManager.set_my_session_id(my_session_id)
                klog("Done. My session id is: %s" % my_session_id)

                UsersManager.set_tracker(Peer(tracker_ip,tracker_port))

                self.ui_handler.login_done(my_session_id)
                return True
            else:
                raise Exception("Response command error: %s" %response)
        except Exception, ex:
            klog(str(ex))
            self.ui_handler.login_done(None)