欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

socket_ftp上傳下載路徑查文件-創(chuàng)新互聯(lián)

#client
importsocket,os,json,hashlib
classFtpclient(object):
     def__init__(self):
         self.client=socket.socket()
     defhelp(self):
         print("put/get/cd/pwd")
     defconnect(self,ip,port):
         self.client.connect((ip,port))
     definteractive(self):
         while True:
             cmd=input("請輸入要上傳下載的文件:").strip()
             iflen(cmd)==0:continue
cmd_str=cmd.split()[0]
             ifhasattr(self,cmd_str):
                 func=getattr(self,cmd_str)
                 func(cmd)
             else:
                 self.help()

     defpwd(self,*args):
         while True:
             cmd_split = args[0].split()
             iflen(cmd_split) > 0:
                 msg_dic = {
                     "action": "pwd"
}
                 self.client.send(json.dumps(msg_dic).encode("utf-8"))
                 cmd_res = self.client.recv(1024)  # 收102400字節(jié)數(shù)據(jù)
                 self.client.send(b"ready recive result")
                 data=self.client.recv(1024)
                 print(data.decode())
                 break

     def
dir(self,*args):
         cmd_split = args[0].split()
         iflen(cmd_split)>0:
             msg_dic={
                 "action":"dir"
}
             while True:
                 self.client.send(json.dumps(msg_dic).encode("utf-8"))
                 cmd_res = self.client.recv(1024)  # 收102400字節(jié)數(shù)據(jù)
                 cmd_res_size=int(cmd_res.decode("utf-8"))
                 self.client.send(b"ready recive result")
                 received_size=0
                 received_data=b''
                 while
received_size<cmd_res_size:
                     ifcmd_res_size - received_size >1024:
                         size=1024
                     else:
                         size=cmd_res_size - received_size
                     data=self.client.recv(size)
                     received_size +=len(data)
                     received_data +=data
                 else:
                     print("cmd_res_size",cmd_res_size)
                     print(received_data.decode())
                 break
     def
put(self,*args):
         cmd_split=args[0].split()
         iflen(cmd_split)>1:
             filename=cmd_split[1]
             ifos.path.isfile(filename):
                 filesize=os.stat(filename).st_size
                 msg_dic={
                     "action":"put",
                     "filename":filename,
                     "size":filesize,
                     "overridden":True
}
                 self.client.send(json.dumps(msg_dic).encode("utf-8"))
                 server_response=self.client.recv(1024)
                 m=hashlib.md5()
                 f=open(filename,'rb')
                 forline inf:
                     m.update(line)
                     self.client.send(line)
                 else:
                     print("file md5:", m.hexdigest())
                     self.client.recv(1024)
                     self.client.send(m.hexdigest().encode("utf-8"))
                     print("file upload success...")
                     f.close()
             else:
                 print(filename,"is not exist")
     defget(self,*args):
         cmd_split=args[0].split()
         iflen(cmd_split)>1:
             filename=cmd_split[1]
             msg_dic={
                     "action":"get",
                     "filename":filename,
                     "overridden":True
}
             self.client.send(json.dumps(msg_dic).encode("utf-8"))
             received_size = 0
             m = hashlib.md5()
             f=open(filename+".download",'wb')
             server_response=self.client.recv(1024)
             file_total_size=int(server_response.decode())
             self.client.send(b"ready to recv file")
             whilereceived_size < file_total_size:
                 iffile_total_size - received_size > 1024:
                     size=1024
                 else:
                     size=file_total_size - received_size
                 data = self.client.recv(size)
                 m.update(data)
                 f.write(data)
                 received_size += len(data)
             else:
                 download_file_md5 = m.hexdigest()
                 self.client.send(b"ready recive your md5")
                 servrer_file_md5 = self.client.recv(1024)
                 print("server_file_md5:",servrer_file_md5.decode())
                 print("download_file_md5:",download_file_md5)
                 print("file [%s] has download..."%filename)
                 print("源文件和下載文件大小分別為:",received_size,file_total_size)
ftp=Ftpclient()
ftp.connect("localhost",5566)
ftp.interactive()

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、利津網(wǎng)站維護(hù)、網(wǎng)站推廣。

 

#main.py
importsocketserver,json,os,hashlib
classMyTcpHandler(socketserver.BaseRequestHandler):
    defput(self,*args):
        cmd_dic=args[0]
        filename=cmd_dic["filename"]
        filesize=cmd_dic["size"]
        ifos.path.isfile(filename):
            f=open(filename+".new",'wb')
        else:
            f=open(filename,'wb')
        self.request.send(b'200 ok')
        received_size=0
        m=hashlib.md5()
        whilereceived_size<filesize:
            data=self.request.recv(1024)
            m.update(data)
            f.write(data)
            received_size+=len(data)
        else:
            uploaded_file_md5=m.hexdigest()
            self.request.send(b"ready recive your md5")
            client_file_md5=self.request.recv(1024)
            print("client_file_md5:",client_file_md5.decode())
            print("uploaded_file_md5:",uploaded_file_md5)
            print("file [%s] has uploaded..."%filename)
    defget(self,*args):
        cmd_dic=args[0]
        filename=cmd_dic["filename"]
        ifos.path.isfile(filename):
            f=open(filename,'rb')
            filesize=os.stat(filename).st_size
            self.request.send(str(filesize).encode())
            self.request.recv(1024)
            m = hashlib.md5()
            forline inf:
                m.update(line)
                self.request.send(line)
            else:
                print("file md5:", m.hexdigest())
                self.request.recv(1024)
                self.request.send(m.hexdigest().encode("utf-8"))
                print("file download  success...")
                f.close()
        else:
            print(filename,"is not exist")
    defdir(self,*args):
        cmd_dic = args[0]
        cmd=cmd_dic["action"]
        while True:
            res = os.popen(cmd).read()
            self.request.send(str(len(res.encode())).encode("utf-8"))
            client_ack=self.request.recv(1024)
            print("確認(rèn)客戶端接收信息")
            self.request.send(res.encode())
            print("執(zhí)行結(jié)果已經(jīng)發(fā)送")

    defpwd(self,*args):
        cmd_dic = args[0]
        cmd=cmd_dic["action"]
        while True:
            res = os.getcwd()
            self.request.send(str(len(res.encode())).encode("utf-8"))
            client_ack=self.request.recv(1024)
            print("確認(rèn)客戶端接收信息")
            self.request.send(res.encode())
            print("執(zhí)行結(jié)果已經(jīng)發(fā)送")

    defhandle(self):
        while True:
            try:
                self.data=self.request.recv(1024).strip()
                print("{} wrote:".format(self.client_address[0]))
                print(self.data.decode())
                cmd_dic=json.loads(self.data.decode())
                print("cmd_dic:",cmd_dic)
                action=cmd_dic["action"]
                ifhasattr(self,action):
                    func=(getattr(self,action))
                    func(cmd_dic)
            exceptConnectionResetError ase:
                print("error",e)
                break
if
__name__=="__main__":
    HOST,PORT="localhost",5566
    server=socketserver.ThreadingTCPServer((HOST,PORT),MyTcpHandler)
    server.serve_forever()
    server.allow_reuse_address()

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

名稱欄目:socket_ftp上傳下載路徑查文件-創(chuàng)新互聯(lián)
瀏覽路徑:http://chinadenli.net/article44/ddiihe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、云服務(wù)器、企業(yè)建站、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)