def Put(self, fichier): boolretour = False for i in range(1, 3): self.sock.sendto(trame.RRQ(fichier), self.ipaddr) retour = self.sock.recvfrom(50) if trame.is_ACK(0, retour[0]): boolretour = True elif trame.is_error(retour[0]): print(self.erreumsg[int(retour[3], 10)]) sleep(1) if boolretour: WriteRequest(fichier, retour[1])
def Put(self, fichier, ipaddr): fichier = os.path.basename(fichier) boolretour = False for i in range(3): self.sock.sendto(trame.WRQ(fichier), (ipaddr, 69)) retour = self.sock.recvfrom(50) if trame.is_ACK(0, retour[0]): boolretour = True break elif trame.is_error(retour[0]): print(str(retour[0][4:])) if boolretour: WriteRequest(fichier, retour[1], self.sock.dup()) else: print("Connection with server failed")
def run(self): #Variable bloc bloc = 1 retry = 0 bThread = False bufferdata = None retourdata = None #Creation de l'object socket utilise f = open(self.fichier, "rb") bThread = True while bThread: f.seek((bloc-1)*512) bufferdata = f.read(512) self.s.sendto(trame.DATA(bloc, bufferdata), self.ip) retourdata = self.s.recv(50) if trame.is_ACK(bloc, retourdata): retry = 0 bloc += 1 if len(bufferdata) < 512: bThread = False print("Fin du transfert") elif trame.is_error(retourdata[:2]): print("Erreur X") bThread = False else: retry += 1 if retry == 3: bThread = False f.close()
self.sock.sendto(trame.RRQ(fichier), self.ipaddr) retour = self.sock.recvfrom(50) if trame.is_ACK(0, retour[0]): boolretour = True elif trame.is_error(retour[0]): print(self.erreumsg[int(retour[3], 10)]) sleep(1) if boolretour: WriteRequest(fichier, retour[1]) a = tftp(("127.0.0.1", 69)) a.Put("allo.txt")ier): boolretour = False for i in range(1, 3): self.sock.sendto(trame.RRQ(fichier), self.ipaddr) retour = self.sock.recvfrom(50) if trame.is_ACK(0, retour[0]): boolretour = True elif trame.is_error(retour[0]): print(self.erreumsg[int(retour[3], 10)]) sleep(1) if boolretour: WriteRequest(fichier, r