本文整理汇总了Python中Function.check_sn方法的典型用法代码示例。如果您正苦于以下问题:Python Function.check_sn方法的具体用法?Python Function.check_sn怎么用?Python Function.check_sn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Function
的用法示例。
在下文中一共展示了Function.check_sn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: import Function [as 别名]
# 或者: from Function import check_sn [as 别名]
def run(self):
# Creazione socket
s = func.create_socket_server(func.roll_the_dice(self.host), self.port)
if s is None:
func.write_daemon_text(self.name, self.host, 'Error: Daemon could not open socket in upload.')
else:
while 1:
conn, addr = s.accept()
ricevutoByte = conn.recv(const.LENGTH_PACK)
#print("\n")
#func.write_daemon_text(self.name, addr[0], str(ricevutoByte, "ascii"))
if not ricevutoByte:
func.write_daemon_error(self.name, addr[0], "Pacchetto errato")
elif (str(ricevutoByte[0:4], "ascii") == const.CODE_CLOSE):
break
else:
if str(ricevutoByte[0:4], "ascii") == const.CODE_SN: ### REQUEST SN
if func.add_pktid(ricevutoByte[4:20], self.listPkt, self.port) is True:
# FORWARD
pk = pack.forward_sn(ricevutoByte)
func.forward(pk, addr[0], self.sn_network)
# RESPONSE
if self.SN:
# Aggiunta supernodi (collaterale)
if str(ricevutoByte[75:80], "ascii") == (func.format_string(const.PORT_SN, 5, "0")):
if not [str(ricevutoByte[20:75],"ascii"), str(ricevutoByte[75:80],"ascii")] in self.sn_network:
self.sn_network.append([str(ricevutoByte[20:75],"ascii"), str(ricevutoByte[75:80],"ascii")])
func.write_daemon_success(self.name, addr[0], "SN Network - Added: " + str(ricevutoByte[20:75], "ascii"))
pk = pack.answer_sn(ricevutoByte[4:20], self.host)
sR = func.create_socket_client(func.roll_the_dice(ricevutoByte[20:75]), ricevutoByte[75:80])
if sR != None:
sR.sendall(pk)
sR.close()
#else:
# func.write_daemon_error(self.name, addr[0], "Pacchetto già ricevuto")
elif str(ricevutoByte[0:4], "ascii") == const.CODE_ANSWER_SN: ### ANSWER SN
if self.SN:
if func.check_sn(ricevutoByte[4:20], self.listPkt) is True:
# ADD SN TO NETWORK
if not [str(ricevutoByte[20:75], "ascii"), str(ricevutoByte[75:80], "ascii")] in self.sn_network:
self.sn_network.append([str(ricevutoByte[20:75],"ascii"), str(ricevutoByte[75:80],"ascii")])
func.write_daemon_success(self.name, addr[0], "SN NETWORK - Added: " + str(ricevutoByte[20:75], "ascii"))
else:
func.write_daemon_error(self.name, addr[0], "SN NETWORK - Super nodo già presente")
else:
func.write_daemon_error(self.name, addr[0], "Tempo per la risposta terminato.")
else:
if func.check_sn(ricevutoByte[4:20], self.listPkt) is True:
if not [str(ricevutoByte[20:75], "ascii"), str(ricevutoByte[75:80], "ascii")] in self.sn_network:
self.sn_network.append([str(ricevutoByte[20:75], "ascii"), str(ricevutoByte[75:80],"ascii")])
func.write_daemon_success(self.name, addr[0], "SN NETWORK - Added: " + str(ricevutoByte[20:75], "ascii"))
else:
func.write_daemon_error(self.name, addr[0], "SN NETWORK - Super nodo già presente")
else:
func.write_daemon_error(self.name, addr[0], "Tempo per la risposta terminato.")
elif str(ricevutoByte[0:4], "ascii") == const.CODE_LOGIN: ### LOGIN
if self.SN:
pk = func.reconnect_user(ricevutoByte[4:59], self.listUsers)
if pk == const.ERROR_PKT:
pk = pack.answer_login()
conn.sendall(pk)
user = [ricevutoByte[4:59], ricevutoByte[59:], pk[4:]]
if not user in self.listUsers:
self.listUsers.append(user)
func.write_daemon_success(self.name, addr[0], "LOGIN OK")
else: func.write_daemon_success(self.name, addr[0], "RECONNECT OK")
#print(self.listUsers)
elif str(ricevutoByte[0:4], "ascii") == const.CODE_ADDFILE:
if self.SN:
if func.isUserLogged(ricevutoByte[4:20], self.listUsers):
if(func.check_file(self.listFiles, ricevutoByte)):
self.listFiles.insert(0, [ricevutoByte[20:52], ricevutoByte[52:152], ricevutoByte[4:20]])
func.write_daemon_success(self.name, addr[0], "ADD FILE: " + str(ricevutoByte[52:152], "ascii").strip())
else:
func.write_daemon_error(self.name, addr[0], "ADD FILE - File già inserito")
else:
func.write_daemon_error(self.name, addr[0], "ADD FILE - User not logged")
elif str(ricevutoByte[0:4], "ascii") == const.CODE_REMOVEFILE:
if self.SN:
if func.isUserLogged(ricevutoByte[4:20], self.listUsers):
findFile = False
i = 0
for file in self.listFiles:
if (ricevutoByte[4:20] == file[2]) and (ricevutoByte[20:] == file[0]):
findFile = True
del self.listFiles[i]
func.write_daemon_success(self.name, addr[0], "REMOVE FILE: " + str(ricevutoByte[20:], "ascii").strip())
i -= 1
i += 1
if not findFile:
#.........这里部分代码省略.........