Example #1
0
class Login:
    def __init__(self, user=1, pwd=b'123', host="61.151.180.166", port=8000):
        host = "61.151.180.158"
        self.tool = Tool()
        self.md2 = self.tool.md5(user, pwd)
        self.user = User(self.md2)
        self.host = self.tool.get_host_by_name(host)
        self.port = port
        self.udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.sendPacket = b''
        self.address = (host, port)
        print(self.address)

    def get_md2(self):
        return self.md2

    def set_value(self, key, value=b''):
        if hasattr(self, key):
            #v = getattr(self,key,None)
            setattr(self, key, value)
        else:
            print('no', key)

    def start_fill(self, key=None):
        pro = TXProtocol()
        sp = b''  # sendPacket
        if key != None:
            if type(key) != bytes:
                raise RuntimeError('key must bytes')
            pro.set_value("SecretKey", key)
        #pro.set("", )
        sp += pro.fill_login_head()
        sp += pro.fill_login_encrypt()
        sp += pro.fill_login_end()
        self.sendPacket = sp
        return sp

    def send_0825(self):
        self.start_fill()
        print("发送包", self.sendPacket)
        try:
            pack = Tool.hexs_to_int(self.sendPacket)
            # print(pack)
            #self.udp_socket.sendto(pack,self.address)
            #one_thr = threading.Thread(target = self.get_0825)
            #one_thr.start()
            data = self.udp_socket.recv(2048)
            print("data", data)
        except BaseException:
            print("Error")

    def get_0825(self):
        print("get_0825")
        while True:
            print("get_0825_2048_START")
            data = self.udp_socket.recv(2048)
            print(data)
            print("get_0825_2048_END")