def download_file(self, peer_ip, peer_port, md5, filename): downloadSocket = connect_socket(peer_ip, peer_port) downloadSocket.send("RETR") downloadSocket.send(decode_md5(md5)) # Star a thread that will take care of the download and of the socket management dlThread = DownloadThread(downloadSocket, filename, md5, peer_ip, self.ui_handler) dlThread.start()
def search_for_peers(self, ttl = TTL_FOR_PEERS_SEARCH ): klog("Started query flooding for peers, ttl %s" %ttl) for peer in PeersManager.find_known_peers(): sock = connect_socket(peer.ip, peer.port) local_ip = sock.getsockname()[0] p_id = generate_packet_id(16) PacketsManager.add_new_generated_packet(p_id) sock.send("NEAR" + p_id + format_ip_address(local_ip) + format_port_number(self.local_port) + format_ttl(ttl)) sock.close()
def search_for_files(self, query, ttl = TTL_FOR_FILES_SEARCH ): klog("Started query flooding for files: %s ttl: %s" %(query,ttl) ) p_id = generate_packet_id(16) for peer in PeersManager.find_known_peers(): sock = connect_socket(peer.ip, peer.port) local_ip = sock.getsockname()[0] PacketsManager.add_new_generated_packet(p_id) sock.send("QUER" + p_id + format_ip_address(local_ip) + format_port_number(self.local_port) + format_ttl(ttl) + format_query(query)) sock.close()