示例#1
0
文件: client.py 项目: huangbxaaa/LFTP
    def send(self):  #把send拆分为preSend
        self.lftpSocket = Lftp.createSocket(UDP_IP, UDP_PORT)
        
        for desination in self.addresses:
            self.lftpSocket.addPeer(desination)
        
        ''' 发送开始包'''
        vsFtpPacket = VsPacket()
        vsFtpPacket.type = VsPacket.TYPE_BEGIN
        if (self.RType == "get"):
            vsFtpPacket.Rt = VsPacket.RT_GET
        elif (self.RType == "put"):
            vsFtpPacket.Rt = VsPacket.RT_PUT
        vsFtpPacket.data = FileSender.processFileName(self.fileName)

        if self.lftpSocket.sendToAll(vsFtpPacket.pack()) == False:
            print("Transmission error, quiting")
            sys.exit()

        if (self.RType == "get"):
            self.filehH = open(self.fileName, 'w')
            Lftp.registerReceiveHandler(self.lftpSocket, self.receiveHandler2)
            print("Started Receiver on  " + str(self.lftpSocket.socket.getsockname()))
            # self.filehH = open(self.fileName, 'w')

        elif (self.RType == "put"):
            fileToSend = open(self.fileName)
            print("Openned fileToSend DF:" + str(fileToSend.fileno()) + " name: " + str(self.fileName))
            Lftp.registerEventHandler(self.lftpSocket, fileSender.handleEvent)
            Event.eventFd(fileToSend.fileno(), self.handleFileDataAvailable, fileToSend, "FileDataAvailable")