python入門第二十八天——檔案上傳

來源:互聯網
上載者:User

標籤:圖片   send   建立   連接埠   需要   none   tcp   end   color   

服務端:

 1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 ‘‘‘ 4 Administrator  5 2018/8/1  6 ‘‘‘ 7 import subprocess 8 import socket,os 9 10 # 建立一個socket:11     #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None12     #建立Socket時,AF_INET指定使用IPv4協議,13     # 如果要用更先進的IPv6,就指定為AF_INET614     # AF_UNIX Unix不同進程之間的通訊15     #  SOCK_STREAM指定使用面向流的TCP協議 SOCK_DGRAM UDP協議16 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)17 print(s)18 address=(‘127.0.0.1‘,8000)19 #建立串連20 s.bind(address)21 #監聽設定連接埠等待用戶端的請求數量22 s.listen(3)23 24 25 print(‘等待...........‘)26 BASE_DIR=os.path.dirname(os.path.abspath(__file__))27 28 while True:29     # accept 阻塞30     conn, addr = s.accept()31     print(addr)32     while True:33         data=conn.recv(1024)34         cmd,filename,filesize=str(data,"utf8").split("|")35         path=os.path.join(BASE_DIR,"img",filename)36         filesize=int(filesize)37 38         f=open(path,"wb")39 40         get_sent=041         while get_sent != filesize:42             data=conn.recv(1024)43             get_sent+=len(data)44             f.write(data)45         print("接受完畢。")46         f.close()47 48 49 s.close()

用戶端:

 1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 ‘‘‘ 4 Administrator  5 2018/8/1  6 ‘‘‘ 7 import socket,os,sys 8  9 sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)10 print(sck)11 address = (‘127.0.0.1‘, 8000) #192.168.0.10312 sck.connect(address)13 14 BASE_DIR=os.path.dirname(os.path.abspath(__file__))15 while True:16     inp = input(">>>").strip()#post|kanqingzi.jpg17 18     cmd,path=inp.split("|")19     path=os.path.join(BASE_DIR,path)#拼接路徑20 21     filename=os.path.basename(path)#需要檔案名稱字22     filesize=os.stat(path).st_size#需要檔案大小23     #檔案打包24     file_info="post|%s|%s"%(filename,filesize)#字串拼接25     sck.sendall(bytes(file_info,"utf8"))26 27     with open(path,"rb") as f:28         has_sent=029         while has_sent !=filesize:30             data=f.read(1024)31             sck.sendall(data)32             has_sent+=len(data)33     print("上傳成功!!!")34 35 sck.close()

練習:遠端控制對方電腦,並將對方電腦裡面的圖片發送過來。

 

python入門第二十八天——檔案上傳

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.