def accepting(): global SOCKETS_STAT, SOCKETS, IPS while not STOP: u, i = main_sock.accept() u.setblocking(0) #SOCKETS.append(u) IPS[i] = u SOCKETS_STAT[i] = {"our_key": newkeys(1024), "his_key": None, "auth_login": None, "partner_login": None, "accept_pm": True, "ip": i} print(SOCKETS_STAT) ########################
def receiving(): global SOCKETS_STAT while not STOP: for sock_ip in list(IPS.keys()): # sock is IP, again. I wanted to use sock link as index, but then realised, that socket object modifies, so it cant be indexed sock = IPS[sock_ip] try: data = sock.recv(4096) except: continue # No incoming data if not data: # Socket is disconnected remuser(sock_ip) continue print(SOCKETS_STAT, sock_ip) # {} ('127.0.0.1', 54364) ПОЧЕМУ, ВЕДЬ НИКТО НИЧЕГО НЕ МЕНЯЛ! if not SOCKETS_STAT[sock_ip]["his_key"]: ... # И тут как раз и есть ошиька KeyError
UPD: SOCKETS_STAT дефайнится в начале кода