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 Get(self, fichier, ipaddr): fichier = os.path.basename(fichier) boolretour = False for i in range(3): self.sock.sendto(trame.RRQ(fichier), (ipaddr, 69)) retour = self.sock.recvfrom(516) if trame.is_DATA(retour[0][:4], 1): boolretour = True break elif trame.is_error(retour[0]): print(str(retour[0][4:])) break if boolretour: ReadRequest(fichier, retour[0][4:], self.sock.dup(), retour[1]) else: print("Connection with server failed")
def run(self): f = open(self.fichier, 'wb') f.write(self.firstbloc) retourData = None bThread = True bloc = 1 retry = 0 while bThread: self.s.sendto(trame.ACK(bloc), self.ip) retourData = self.s.recv(516) if bloc == 65535: bloc = 0 if trame.is_DATA(retourData[:4], bloc+1): bloc += 1 retry = 0 f.write(retourData[4:]) #Fin de la requete de lecture dernire paquet if len(retourData[4:]) < 512: bThread = False self.s.sendto(trame.ACK(bloc), self.ip) print("Fin du transfert") elif trame.is_error(retourData[:2]): bThread = False retry = 3 print(str(retourData[4:])) else: retry += 1 if retry == 3: f.close() os.remove(self.fichier) bThread = False print("Conenction with server stop") f.close()
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