精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

網(wǎng)絡(luò)通信Socket模塊實現(xiàn)文件傳輸

網(wǎng)絡(luò) 通信技術(shù)
本篇給大家介紹網(wǎng)絡(luò)通信Socket模塊實現(xiàn)文件傳輸

 實現(xiàn)的效果如下的Gif所示,就是網(wǎng)絡(luò)通信Socket模塊實現(xiàn)文件下載傳輸。

服務(wù)端

首先需要獲取本機(jī)ip,這里服務(wù)端采用多線程的方法,就是定義一個函數(shù),然后用threading創(chuàng)建任務(wù)。客戶端連接成功,接收客戶端的請求信息,就是下載的文件名。所以需要判斷,有輸出文件字節(jié)數(shù)。然后在問用戶是不是要下載,得到信息就使用 while True: 讀文件的內(nèi)容,再一個send。看代碼是不是就是這么回事。

  1. import socket 
  2. import os 
  3. import threading 
  4.  
  5. # 獲取本機(jī)ip 
  6. def get_host_ip(): 
  7.     try: 
  8.         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
  9.         s.connect(('8.8.8.8', 80)) 
  10.         ip = s.getsockname()[0] 
  11.     finally: 
  12.         s.close() 
  13.  
  14.     return ip 
  15.  
  16. # 處理客戶端請求下載文件的操作(從主線程提出來的代碼) 
  17. def deal_client_request(ip_port, service_client_socket): 
  18.     # 連接成功后,輸出“客戶端連接成功”和客戶端的ip和端口 
  19.     print("客戶端連接成功", ip_port) 
  20.     # 接收客戶端的請求信息【recv】 
  21.     file_name = service_client_socket.recv(1024) 
  22.     # 解碼 
  23.     file_name_data = file_name.decode("utf-8"
  24.     # 判斷文件是否存在 
  25.     if os.path.exists(file_name_data): 
  26.         #輸出文件字節(jié)數(shù) 
  27.         fsize = os.path.getsize(file_name_data) 
  28.         #轉(zhuǎn)化為兆單位 
  29.         fmb = fsize/float(1024*1024) 
  30.         #要傳輸?shù)奈募畔?nbsp;
  31.         senddata = "文件名:%s  文件大小:%.2fMB"%(file_name_data,fmb) 
  32.         #發(fā)送和打印文件信息【send】 
  33.         service_client_socket.send(senddata.encode("utf-8")) 
  34.         print("請求文件名:%s  文件大小:%.2f MB"%(file_name_data,fmb)) 
  35.         #接受客戶是否需要下載【recv】 
  36.         options = service_client_socket.recv(1024) 
  37.         if options.decode("utf-8") == "y"
  38.             # 打開文件 
  39.             with open(file_name_data, "rb"as f: 
  40.                 # 計算總數(shù)據(jù)包數(shù)目 
  41.                 nums = fsize/1024 
  42.                 # 當(dāng)前傳輸?shù)臄?shù)據(jù)包數(shù)目 
  43.                 cnum = 0 
  44.  
  45.                 while True
  46.                     file_data = f.read(1024) 
  47.                     cnum = cnum + 1 
  48.                     #progress = cnum/nums*100 
  49.  
  50.                     #print("當(dāng)前已下載:%.2f%%"%progress,end = "\r"
  51.                     if file_data: 
  52.                         # 只要讀取到數(shù)據(jù),就向客戶端進(jìn)行發(fā)送【send】 
  53.                         service_client_socket.send(file_data) 
  54.                     # 數(shù)據(jù)讀完,退出循環(huán) 
  55.                     else
  56.                         print("請求的文件數(shù)據(jù)發(fā)送完成"
  57.                         break 
  58.         else
  59.             print("下載取消!"
  60.     else
  61.         print("下載的文件不存在!"
  62.     # 關(guān)閉服務(wù)當(dāng)前客戶端的套接字【close】 
  63.     service_client_socket.close() 
  64.  
  65.  
  66. if __name__ == '__main__'
  67.     # 獲取本機(jī)ip 
  68.     print("TCP文件傳輸服務(wù)器,本機(jī)IP:" + get_host_ip()) 
  69.      
  70.     # 把工作目錄切換到data目錄下 
  71.     os.chdir("./data"
  72.     # 創(chuàng)建套接字【socket】 
  73.     tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
  74.     # 綁定端口號【bind】 
  75.     tcp_server_socket.bind(("", 3356)) 
  76.     # 設(shè)置監(jiān)聽,將主動套接字變?yōu)楸粍犹捉幼帧緇isten】 
  77.     tcp_server_socket.listen(128) 
  78.  
  79.     # 循環(huán)調(diào)用【accept】,可以支持多個客戶端同時連接,和多個客戶端同時下載文件 
  80.     while True
  81.         service_client_socket, ip_port = tcp_server_socket.accept() 
  82.         # 連接成功后打印套接字號 
  83.         #print(id(service_client_socket)) 
  84.  
  85.         # 創(chuàng)建子線程 
  86.         sub_thread = threading.Thread(target=deal_client_request, args=(ip_port, service_client_socket)) 
  87.         # 啟動子線程 
  88.         sub_thread.start() 

客戶端

客戶端更簡單,連接服務(wù)端,發(fā)送下載文件的請求,定義一個寫入的文件夾,就是小兒科東西。不寫了,看代碼。

  1. # -*- coding:utf-8 -*- 
  2. # 多任務(wù)文件下載器客戶端 
  3. import socket 
  4. import os 
  5.  
  6. if __name__ == '__main__'
  7.     # 創(chuàng)建套接字【socket】 
  8.     tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
  9.     # 和服務(wù)端連接【connect】 
  10.     server_ip = input("輸入服務(wù)器IP:"
  11.     tcp_client_socket.connect((server_ip, 3356)) 
  12.     # 發(fā)送下載文件的請求 
  13.     file_name = input("請輸入要下載的文件名:"
  14.     # 編碼 
  15.     file_name_data = file_name.encode("utf-8"
  16.     # 發(fā)送文件下載請求數(shù)據(jù)【send】 
  17.     tcp_client_socket.send(file_name_data) 
  18.     # 接收要下載的文件信息【recv】 
  19.     file_info = tcp_client_socket.recv(1024) 
  20.     # 文件信息解碼 
  21.     info_decode = file_info.decode("utf-8"
  22.     print(info_decode) 
  23.     #獲取文件大小 
  24.     fileszie = float(info_decode.split(':')[2].split('MB')[0]) 
  25.     fileszie2 = fileszie*1024 
  26.     # 是否下載?輸入y 確認(rèn) 輸入q 取消 
  27.     opts = input("是否下載?(y 確認(rèn) q 取消)"
  28.     if opts == 'q'
  29.         print("下載取消!程序退出"
  30.     else
  31.         print("正在下載 >>>>>>"
  32.         #向服務(wù)器確認(rèn)正在下載【send】 
  33.         tcp_client_socket.send(b'y'
  34.  
  35.         recvpath = "./receive/" 
  36.         if not os.path.exists(recvpath): 
  37.             os.mkdir(recvpath)  
  38.          
  39.         # 把數(shù)據(jù)寫入到文件里 
  40.         with open(recvpath + file_name, "wb"as file: 
  41.             #目前接收到的數(shù)據(jù)包數(shù)目 
  42.             cnum = 0 
  43.  
  44.             while True
  45.                 # 循環(huán)接收文件數(shù)據(jù)【recv】 
  46.                 file_data = tcp_client_socket.recv(1024) 
  47.                 # 接收到數(shù)據(jù) 
  48.                 if file_data: 
  49.                     # 寫入數(shù)據(jù) 
  50.                     file.write(file_data) 
  51.                     cnum = cnum+1 
  52.                     #progress =cnum/fileszie2*100 
  53.                     #print("當(dāng)前已下載:%.2f%%"%progress,end = "\r"
  54.                 # 接收完成 
  55.                 else
  56.                     print("下載結(jié)束!"
  57.                     break 
  58.     # 關(guān)閉套接字【close】 
  59.     tcp_client_socket.close() 

擴(kuò)展

如果手機(jī)想要下載電腦上的文件(電腦和手機(jī)之間),需要確保電腦和手機(jī)連接的網(wǎng)絡(luò)在同一個路由器下

通過ipconfig查看ip

命令行輸入python -m http.server 8888來搭建局域網(wǎng)

手機(jī)訪問192.168.0.101:8888即可下載文件

本文已收錄 GitHub,傳送門~[1] ,里面更有大廠面試完整考點,歡迎 Star。

Reference

[1]傳送門~:

 

https://github.com/MaoliRUNsen/runsenlearnpy100

 

責(zé)任編輯:姜華 來源: Python之王
相關(guān)推薦

2012-03-19 10:35:51

ibmdw

2017-01-15 17:44:56

node網(wǎng)絡(luò)通信Socket

2019-10-22 08:11:43

Socket網(wǎng)絡(luò)通信網(wǎng)絡(luò)協(xié)議

2024-04-23 13:36:00

2009-10-27 16:52:41

VB.NET文件傳輸

2009-09-07 13:38:03

C# HTTP文件傳輸HTTP文件傳輸

2011-08-24 10:18:56

2009-01-18 09:28:00

2023-11-04 09:06:11

2011-03-25 14:20:44

263郵箱超大附件

2020-11-12 08:52:16

Python

2019-04-29 10:26:49

TCP網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)通信

2009-08-24 17:20:13

C#網(wǎng)絡(luò)通信TCP連接

2017-02-27 20:24:27

Linux文件傳輸命令

2010-06-28 14:25:16

2010-07-01 15:55:54

FTP文件傳輸協(xié)議

2009-08-26 14:35:00

用C#實現(xiàn)HTTP協(xié)議

2019-08-30 13:25:09

WinSCPWindowsLinux

2022-12-05 09:25:17

Kubernetes網(wǎng)絡(luò)模型網(wǎng)絡(luò)通信

2024-02-20 19:53:57

網(wǎng)絡(luò)通信協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號

欧亚精品一区| а√天堂中文资源在线bt| 日韩精品一区第一页| 色哟哟亚洲精品一区二区| 中文字幕第一页在线视频| 女囚岛在线观看| 久久亚洲捆绑美女| 成人h视频在线| 日韩av一区二区在线播放| 国产精品一在线观看| 7777精品伊人久久久大香线蕉的 | 日本中文字幕不卡免费| а天堂中文在线资源| 精品亚洲自拍| 91.com视频| 欧美 日韩 国产一区| 黄网站在线免费| 久久久综合视频| av免费精品一区二区三区| 日本中文字幕在线观看视频| 欧美高清一区| 日韩有码在线观看| 一区二区不卡免费视频| 一区二区三区视频播放| 欧美色综合影院| 老太脱裤让老头玩ⅹxxxx| 久久精品视频观看| 国产欧美精品一区二区色综合| 国产精品99久久久久久久| 97精品久久人人爽人人爽| 天堂资源在线中文精品| 97精品视频在线观看| 欧美人禽zoz0强交| 日韩在线观看电影完整版高清免费悬疑悬疑| 亚洲成人精品视频| 制服下的诱惑暮生| 色999久久久精品人人澡69| 一本色道久久综合亚洲91| 国产香蕉一区二区三区| 午夜国产福利在线| 中文字幕不卡的av| 茄子视频成人在线观看 | 国产亚洲一区二区三区四区 | av在线免费一区| 久久综合九色综合久久久精品综合| av一区二区在线看| 国产浮力第一页| 国产一区二区三区高清播放| 国产乱肥老妇国产一区二| 自拍偷拍18p| 日韩精品三区四区| 国产精品日韩在线观看| 亚洲av综合一区| 美女国产一区二区| 国产精品免费一区豆花| 中文字字幕在线观看| 日本人妖一区二区| 国产精品国产三级国产专播精品人| av资源免费观看| 欧美一级一区| 国产不卡在线观看| 中文字幕一区二区三区波野结| 蜜桃av一区二区| 成人在线精品视频| 精品国产亚洲一区二区麻豆| 国产激情一区二区三区四区| 国产精品v欧美精品∨日韩| 亚洲AV无码成人片在线观看| 成人激情黄色小说| 久久久久久草| av在线播放免费| 亚洲欧洲日产国产综合网| 国产成人三级视频| 17videosex性欧美| 欧美日韩色婷婷| 午夜激情在线观看视频| 亚洲精品成a人ⅴ香蕉片| 91精品国产色综合久久不卡蜜臀| 特黄特色免费视频| 日本中文字幕在线一区| 在线成人激情黄色| 91视频免费在线看| 国产精品婷婷| 国产欧美精品久久久| 99国产在线播放| 91原创在线视频| 亚洲欧洲日韩精品| 国产精品186在线观看在线播放| 精品久久在线播放| 日本在线观看视频一区| youjizz亚洲| 在线观看中文字幕亚洲| 九九热精彩视频| 久久婷婷一区| 亚洲自拍偷拍色图| 青春有你2免费观看完整版在线播放高清| 国产欧美精品一区| 黄色一级片国产| 欧美人体一区二区三区| 日韩亚洲欧美在线观看| 亚洲国产无码精品| 午夜精品免费| 国产成人精品一区二区三区| www国产一区| 国产亚洲一二三区| 欧美一级欧美一级| 亚洲欧美专区| 国产视频精品一区二区三区| 欧美三级日本三级| 日韩国产欧美三级| 狠狠色综合网站久久久久久久| 亚洲成a人v欧美综合天堂麻豆| 午夜电影网一区| www.亚洲自拍| 欧美艳星介绍134位艳星| 久久男人资源视频| 国产精品污视频| 日本一区二区三区国色天香| 男女超爽视频免费播放| 国产视频一区二| 一本色道久久综合狠狠躁篇的优点| 国产一级视频在线播放| 精品在线免费观看| 日韩电影天堂视频一区二区| 国产精品一区二区日韩| 欧美大黄免费观看| 日本二区三区视频| 美女www一区二区| 日韩国产欧美一区| 中文字幕在线官网| 亚洲国产精品va在线看黑人动漫 | 亚洲在线久久| 国产精品视频一区二区三区四| 婷婷五月综合激情| 亚洲制服丝袜一区| 国产成人av免费观看| 亚洲综合色站| 91午夜在线播放| 午夜毛片在线| 欧美丰满少妇xxxbbb| 久久久久久成人网| 蜜臀久久久99精品久久久久久| 欧美国产视频在线观看| 美女视频在线免费| 亚洲精品电影网| 日韩 欧美 精品| 99久久国产免费看| 国产午夜伦鲁鲁| 欧美网色网址| 欧美亚洲激情视频| 欧美视频综合| 在线免费观看一区| 丰满的亚洲女人毛茸茸| 日韩成人dvd| 亚洲欧美日韩精品综合在线观看| 亚洲精品一区三区三区在线观看| 中文欧美在线视频| 国产精品久久久久久久久毛片| 综合婷婷亚洲小说| 国产农村妇女精品久久| 欧美视频在线观看| 韩国一区二区三区美女美女秀| av手机在线观看| 国产丝袜精品视频| 中文区中文字幕免费看| 亚洲天堂免费看| 好吊操视频这里只有精品| 亚洲激情另类| 欧美在线一二三区| 四虎国产精品成人免费影视| 久久影视免费观看| 日韩中文字幕综合| 色老综合老女人久久久| 强制高潮抽搐sm调教高h| 国产乱码精品1区2区3区| 97视频久久久| 欧美一区二区三| 亚洲自拍偷拍福利| 亚洲天堂av在线| 精品国产拍在线观看| 亚洲经典一区二区| 色综合久久中文综合久久牛| 国产精品久久久久久成人| 国产精品一区二区久久不卡| 每日在线更新av| 日韩精品一区二区久久| 国产不卡一区二区在线观看| 自拍网站在线观看| 欧美成人在线影院| 精品无吗乱吗av国产爱色| 7777精品久久久大香线蕉| 在线免费观看毛片| 中文一区一区三区高中清不卡| 国产精品19p| 奇米精品一区二区三区在线观看一| 欧美少妇一区二区三区| 国产精品欧美三级在线观看| 亚洲va欧美va国产综合久久| 黑人巨大精品| 欧美高清在线视频观看不卡| 第九色区av在线| 欧美tk丨vk视频| 艳妇乳肉豪妇荡乳av无码福利| 一区二区免费在线播放| 影音先锋男人在线| 成人av电影在线网| 成年人三级黄色片| 久久不射中文字幕| 国产免费裸体视频| 日韩在线观看| 日本一区高清不卡| 老司机aⅴ在线精品导航 | 一级特黄aaa大片| 欧美视频一区二区三区…| 农村黄色一级片| 国产精品久久久久影院| 亚洲专区区免费| 成人一区在线观看| 三日本三级少妇三级99| 久久中文在线| 每日在线更新av| 亚洲国产mv| 中文字幕の友人北条麻妃| 欧美裸体在线版观看完整版| 精品蜜桃传媒| 亚洲精品黑牛一区二区三区| 91精品国产综合久久久久久久久| 九九热线视频只有这里最精品| 性金发美女69hd大尺寸| 男女视频在线| 欧美老少配视频| 超碰在线网址| 久久精品国产亚洲| 午夜在线观看视频| 中文字幕av日韩| 国产美女视频一区二区三区| 亚洲欧美中文日韩在线| 日本私人网站在线观看| 日韩精品视频中文在线观看| 手机av在线免费观看| 亚洲精品在线电影| 亚洲黄色在线播放| 亚洲成人网久久久| 污污网站免费在线观看| 亚洲国产精品久久久久久| 国产综合视频在线| 亚洲成人教育av| 丝袜+亚洲+另类+欧美+变态| 亚洲黄在线观看| 免费福利在线视频| 国产亚洲欧美日韩美女| 大乳在线免费观看| 中文字幕亚洲二区| 免费网站成人| 欧美尺度大的性做爰视频| 日本孕妇大胆孕交无码| 国模精品视频一区二区三区| 黄色视屏在线免费观看| 全亚洲最色的网站在线观看| 性欧美videohd高精| 国产精品久久久久久久久免费看 | 日韩欧美美女一区二区三区| 亚洲大尺度网站| 亚洲第一男人天堂| 美女毛片在线看| 日韩有码片在线观看| 2024最新电影在线免费观看| 久久久亚洲天堂| 在线能看的av网址| 国产欧美日韩精品丝袜高跟鞋| 在线成人免费| 国产在线一区二区三区四区| 神马影视一区二区| 国产系列第一页| 精品动漫3d一区二区三区免费| 欧美老熟妇喷水| 青娱乐精品视频在线| 成人免费播放视频| 99精品久久只有精品| 午夜精产品一区二区在线观看的| 国产精品国产馆在线真实露脸| 婷婷色中文字幕| 日本韩国一区二区三区视频| 97在线播放免费观看| 亚洲成人亚洲激情| 91在线网址| 久久久噜噜噜久久久| 欧美日韩尤物久久| 国产精品二区在线| 精品日韩在线| 91黄色在线看| 麻豆91在线播放免费| 日本五十肥熟交尾| 国产精品不卡在线观看| 日韩av无码中文字幕| 欧美久久一二区| 亚洲欧美综合一区二区| 久久久999国产| 中文日产幕无线码一区二区| 亚洲精品欧美日韩| 国产亚洲欧美日韩在线观看一区二区 | 欧美日韩中文字幕综合视频 | 午夜无码国产理论在线| www.成人av| 日韩欧美大片| 成人综合视频在线| 国产成人在线影院 | 91精品综合| 韩国一区二区av| 成人精品小蝌蚪| 亚洲波多野结衣| 91成人看片片| 人妻一区二区三区四区| 久久影院免费观看| 97成人超碰| 欧美精品一区二区三区在线四季| 欧美 日韩 国产 一区| 国产一二三区av| 久久伊99综合婷婷久久伊| 免费日韩在线视频| 欧美丰满一区二区免费视频 | 免费精品国产| 国产69精品久久久久999小说| 国产综合久久久久影院| 久久日免费视频| 色94色欧美sute亚洲线路一久| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 五月花成人网| 成人网中文字幕| 欧美午夜精彩| 午夜欧美福利视频| 国产午夜久久久久| 精品人妻一区二区三区免费看| 亚洲成avwww人| 久草成色在线| 99在线国产| 欧美久久九九| 无码国产精品一区二区高潮| 亚洲欧美偷拍三级| 国产又色又爽又黄又免费| 一区二区亚洲欧洲国产日韩| 久久99久久99精品免观看软件| 久久久久久精| 久久国产66| 人妻视频一区二区| 欧美影片第一页| 在线激情小视频| 国产欧美日韩精品专区| 97精品国产| 中文字幕色网站| 一区二区三区在线视频观看58| av中文在线观看| 欧美激情精品久久久久久免费印度| 午夜视频一区二区在线观看| 男女日批视频在线观看| 99久久精品一区| 日韩一级在线视频| 在线亚洲欧美视频| 在线欧美激情| 水蜜桃在线免费观看| 成人午夜电影小说| 亚洲另类欧美日韩| 亚洲天堂男人天堂女人天堂| 亚洲天堂1区| 永久免费看av| 成人精品国产免费网站| 精品免费囯产一区二区三区| 在线播放国产一区中文字幕剧情欧美 | 欧美影院一区二区三区| 欧美激情黑人| 成人免费在线看片| 国产精品日韩| chinese全程对白| 精品嫩草影院久久| 欧美日韩美女| 色综合一个色综合亚洲| 在线一区二区不卡| 亚洲少妇最新在线视频| 亚洲男人第一天堂| 日本精品视频在线| 亚洲国产一区二区三区在线播放| 又色又爽又黄18网站| 日韩欧美国产视频| 黄色在线免费网站| 久久精品ww人人做人人爽| 日本中文字幕一区二区有限公司| 日韩成人短视频| 日韩电视剧在线观看免费网站| 国产情侣一区二区三区| 日本中文字幕在线视频观看| 国产日产欧美精品一区二区三区| 99久久国产免费| 日韩av电影在线免费播放| 国产高清一区二区| 特大黑人巨人吊xxxx| 91精品中文字幕一区二区三区 | 国产成人精品一区| 欧美日一区二区在线观看| 欧美成人国产精品一区二区| 日韩欧美在线123|