當前位置: 首頁>>代碼示例>>Python>>正文


Python Function.check_file方法代碼示例

本文整理匯總了Python中Function.check_file方法的典型用法代碼示例。如果您正苦於以下問題:Python Function.check_file方法的具體用法?Python Function.check_file怎麽用?Python Function.check_file使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Function的用法示例。


在下文中一共展示了Function.check_file方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: run

# 需要導入模塊: import Function [as 別名]
# 或者: from Function import check_file [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:
#.........這裏部分代碼省略.........
開發者ID:tommasoberlose,項目名稱:p2p_kazaa,代碼行數:103,代碼來源:Daemon.py


注:本文中的Function.check_file方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。