def connecting(host, port, username): global user, scall_user i = 0 while True: #cancel a 3 times try: conn_msg = socket.socket(socket.AF_INET, socket.SOCK_STREAM) conn_msg.settimeout(5) conn_msg.connect((host, port)) conn_msg.settimeout(None) conn_file = socket.socket(socket.AF_INET, socket.SOCK_STREAM) conn_file.settimeout(5) conn_file.connect((host, port + 1)) conn_file.settimeout(None) except: if i == 3: return (False, "attempt") time.sleep(0.2) else: break i += 1 key = Fernet.generate_key() key_RSA = conn_msg.recv(2048) try: recipient_key = RSA.imporimport_keytKey(key_RSA) except: recipient_key = RSA.importKey(key_RSA) cipher_rsa = PKCS1_OAEP.new(recipient_key) enc_session_key = cipher_rsa.encrypt(key) conn_msg.send(enc_session_key) user = snet.user(key, conn_msg, conn_file, username) #user.sock_call = call_sock password = window.line_pass.text() user.secure_send(password, conn_msg) is_correct = user.secure_recv(conn_msg) is_correct = is_correct.decode() if is_correct == "1": user.secure_send(username + "*/randesc/*" + user.random_esc, conn_msg) sameu_and_key = user.secure_recv(conn_msg) sameu_and_key = sameu_and_key.decode() samer_username = sameu_and_key[0] if samer_username == "0": scall_user = snet.scall(sameu_and_key[1:]) #scall_user.sock_call.settimeout(1) scall_user.sock_call.connect((host, port)) scall_user.sock_call.setblocking(0) window.thread_recv_msg.start() #end it with close window.thread_recv_file.start() return (True, "") else: return (False, "same") else: return (False, "pass")