示例#1
0
 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])
示例#2
0
 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")
示例#3
0
    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()
示例#4
0
            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