精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

中文字幕一二三区| 亚洲一区二区不卡视频| 日本少妇久久久| 婷婷精品视频| 在线亚洲免费视频| 一区二区视频在线观看| www.com欧美| 亚洲欧美日韩在线观看a三区| 亚洲欧美日韩久久久久久| 韩国视频一区二区三区| 中文在线手机av| k8久久久一区二区三区 | 日本wwww色| 一区二区乱码| 中文字幕一区免费在线观看| 超碰97在线人人| 国产污视频网站| 欧美一区影院| 国产一区二区黄| 中文字幕乱码在线人视频| 黑人巨大精品| 一区二区免费在线播放| 欧美精品久久久| va婷婷在线免费观看| 爽爽淫人综合网网站| 欧美成人免费全部| www亚洲色图| 美女一区2区| 欧美一级一级性生活免费录像| av免费中文字幕| 毛片大全在线观看| 国产精品传媒入口麻豆| 欧美国产综合视频| 狠狠人妻久久久久久综合麻豆| 奇米精品一区二区三区在线观看一| 欧美国产一区二区三区| 国产中文字幕久久| 激情综合网站| 日韩高清a**址| 久久久无码人妻精品无码| 国产精品美女午夜爽爽| 日本韩国欧美三级| 日日碰狠狠添天天爽超碰97| 少女频道在线观看免费播放电视剧 | 国产精品扒开腿做爽爽爽男男| 久久久久久久久99| 91精品一区国产高清在线gif| 亚洲新声在线观看| 蜜桃精品一区二区| 婷婷亚洲成人| 精品亚洲国产视频| 亚洲观看黄色网| 久久成人福利| 亚洲国产精品久久久久秋霞不卡| 性一交一黄一片| 日本精品国产| 日韩欧美国产不卡| 欧美激情第四页| 精品视频一区二区三区在线观看| 91精品视频网| 日韩不卡的av| 成人直播在线观看| 精品播放一区二区| 亚洲一级av无码毛片精品| 成人午夜网址| 精品无人区乱码1区2区3区在线| 影音先锋人妻啪啪av资源网站| 久久久免费毛片| 日韩二区三区在线| 高潮毛片无遮挡| 精品久久久久久久久久久aⅴ| 一区二区三区亚洲| 波多野结衣欲乱| 亚洲天天影视网| 欧美国产视频一区二区| 日本一二三区不卡| 性欧美videos另类喷潮| 国产大片精品免费永久看nba| 波多野结衣高清在线| 日本中文在线一区| 成人性生交大片免费看小说| 亚洲精品久久久蜜桃动漫 | 精品黑人一区二区三区观看时间| 日韩三级视频| 国产亚洲精品美女| 成年人二级毛片| 91久久在线| 国产精品第1页| 国产精品无码在线播放| www.久久精品| 一区二区不卡视频| 91美女主播在线视频| 色婷婷综合久久久| 天天av天天操| 亚州av日韩av| 久久久精品一区| 国产成人亚洲欧洲在线| 欧美a级理论片| 国产高清不卡av| 国产免费av在线| 一区二区三区中文免费| 久久国产乱子伦免费精品| 欧美综合社区国产| 亚洲国产精品人人爽夜夜爽| 中文字幕在线观看二区| 亚洲国内精品| 国产日韩在线视频| 亚洲av成人精品日韩在线播放| 国产精品国产三级国产普通话蜜臀| 人妻激情另类乱人伦人妻| 欧美色网在线| 精品国产乱码久久久久久老虎 | 亚洲三级在线免费| 久久精品免费一区二区| 国产一区二区av在线| 精品偷拍各种wc美女嘘嘘| 9999热视频| 日韩成人精品视频| 国产伦精品一区二区三区在线| www视频在线观看免费| 亚洲一区二区欧美日韩| 在线观看国产一级片| 天天躁日日躁狠狠躁欧美巨大小说| 久久伊人精品一区二区三区| 波多野结衣不卡| 成人一区在线观看| 中日韩在线视频| 亚洲综合在线电影| 日韩高清欧美高清| 国产午夜精品无码一区二区| 国产美女精品人人做人人爽| 日韩精品伦理第一区| 免费毛片b在线观看| 日韩午夜激情免费电影| 老司机深夜福利网站| 日韩经典一区二区| 欧美裸体网站| 蜜桃视频在线网站| 亚洲国产精品美女| 日本特黄特色aaa大片免费| 国产剧情一区二区三区| 综合一区中文字幕| 日韩成人综合网站| 一区二区在线视频播放| 成人毛片一区二区三区| 久久日一线二线三线suv| 妞干网在线观看视频| 日韩激情综合| 久久这里有精品视频| 国产精品伦一区二区三区| 久久午夜羞羞影院免费观看| 欧美日韩成人免费视频| 精品亚洲免a| 久久久久久久一区二区三区| www.中文字幕| 亚洲成a人v欧美综合天堂下载| 亚洲911精品成人18网站| 欧美日韩综合| 国产成人免费观看| 成人观看网址| 亚洲社区在线观看| 中文字幕久久熟女蜜桃| 中文字幕va一区二区三区| 最新中文字幕免费视频| 久久激情电影| 91亚洲国产成人精品性色| 二区三区四区高清视频在线观看| 91精品国产免费| 免费日韩在线视频| a美女胸又www黄视频久久| 久久精品免费一区二区| 日韩成人三级| 亚洲一区亚洲二区| gogo久久| 亚洲欧美综合v| 中文字幕一区2区3区| 亚洲三级在线看| 99精品一区二区三区无码吞精| 在线视频亚洲| 亚洲精品一区二区三| www.久久久.com| 久久免费少妇高潮久久精品99| 五月天福利视频| 欧美中文字幕一区二区三区亚洲| 久久精品在线观看视频| 国产91色综合久久免费分享| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 菠萝蜜一区二区| 91免费观看| 忘忧草在线日韩www影院| 中文字幕视频在线免费欧美日韩综合在线看 | 欧美女优在线观看| 欧美精品在线观看播放| 日本三级欧美三级| 国产精品久久午夜夜伦鲁鲁| 国产伦精品一区二区三区妓女下载| 亚洲毛片网站| 伊人av成人| 啪啪国产精品| 91美女片黄在线观| 手机在线观看av| 久久九九国产精品怡红院| 五月婷婷六月丁香| 717成人午夜免费福利电影| 精品国产免费观看| 日韩美女视频19| 日韩人妻无码一区二区三区| 国产伦精品一区二区三区免费| 亚洲色成人一区二区三区小说| 97久久夜色精品国产| 久草精品电影| 精品91福利视频| 国产精品精品久久久| av色在线观看| 久久视频免费观看| 黄色美女网站在线观看| 欧美成人一区二区| 国产精品无码久久久久成人app| 色综合视频一区二区三区高清| 精品国产乱码久久久久久鸭王1| 国产亚洲精品bt天堂精选| 岛国精品一区二区三区| 久久精品国产久精国产| 国产性xxxx18免费观看视频| 黄色亚洲在线| 91xxx视频| 日本久久精品| 欧美在线激情| 亚洲国产精品嫩草影院久久av| 96久久精品| 国产精品麻豆| 国产欧美一区二区三区久久| 国产精品亚洲一区二区三区在线观看| 韩日欧美一区二区| 在线视频观看国产| 久久人人爽人人爽爽久久| av影片在线看| 亚洲性生活视频| 欧美伦理影视网| 精品在线观看国产| 污污网站在线免费观看| 亚洲第一色在线| 亚洲精品视频专区| 精品欧美乱码久久久久久1区2区| 国产男女无套免费网站| 这里只有精品电影| 国产乱码精品一区二三区蜜臂 | 国外成人在线直播| 欧美性爽视频| 欧美日韩国产成人| 特级毛片在线| 欧美激情手机在线视频| 激情av在线| 性欧美视频videos6一9| av资源在线| 奇米四色中文综合久久| 自拍偷拍亚洲视频| 国产精品96久久久久久又黄又硬 | 亚洲无吗在线| 每日在线观看av| 99在线观看免费视频精品观看| 国产资源在线视频| 久久精品人人做人人爽电影蜜月| www.色偷偷.com| 久久国内精品自在自线400部| 成人av毛片在线观看| 国产精品自拍在线| 国产精品久久久久久在线观看| 99精品视频在线观看| 亚洲a v网站| 国产精品久久影院| 久久综合加勒比| 欧美视频国产精品| 这里只有精品999| 91精品国产欧美日韩| 日本波多野结衣在线| 亚洲另类欧美自拍| 欧美天天影院| 欧美激情在线狂野欧美精品| 在线视频超级| 国产一区二区色| 中文字幕亚洲在线观看| 久久久久久久久四区三区| 欧美精选视频在线观看| 只有这里有精品| 最新亚洲视频| www午夜视频| 成人福利在线看| 在线观看免费小视频| 一区二区免费看| 波多野结衣电车| 日韩免费一区二区| 国产福利在线观看| 欧美国产第一页| 亚洲综合在线电影| 国产精品免费视频一区二区 | 国产综合色在线观看| 亚洲精品日韩av| 亚洲涩涩av| 日本黄xxxxxxxxx100| 久久精品观看| 无码人妻一区二区三区免费n鬼沢| 久久精品免费在线观看| 亚洲国产123| 91久久奴性调教| 人妻精品一区一区三区蜜桃91| 中日韩午夜理伦电影免费| jizz一区二区三区| 国产色综合天天综合网| 亚洲瘦老头同性70tv| 中文字幕色呦呦| 日韩电影免费一区| 中文字幕免费在线播放| 亚洲色图都市小说| 国产男人搡女人免费视频| 亚洲第一免费网站| 免费黄色在线观看| 国产suv精品一区二区| 国产精品视屏| 在线观看18视频网站| 免费久久99精品国产| 人妻丰满熟妇aⅴ无码| 亚洲国产婷婷综合在线精品| 国产精品久久久久久无人区| 一区二区欧美激情| 中文在线最新版地址| 国产一区二区高清不卡| 亚洲一区 二区 三区| 一本岛在线视频| 久久九九影视网| 国产精品500部| 欧美成人免费网站| 伊人春色在线观看| 91色视频在线观看| 国产精品久久久乱弄| 国产精品久久久毛片| 国产拍揄自揄精品视频麻豆| 成人免费看片98欧美| 亚洲激情免费观看| missav|免费高清av在线看| 成人毛片网站| 国内精品福利| 国产精九九网站漫画| 一区二区国产视频| 亚洲成a人片77777精品| 欧美国产高跟鞋裸体秀xxxhd| 欧美三级一区| a级片一区二区| 丰满白嫩尤物一区二区| 久草视频手机在线观看| 欧美大黄免费观看| 欧美xxxx视频| 国产乱码一区| 日韩午夜一区| 精品人妻一区二区三区视频| 色婷婷激情久久| 国产三级视频在线看| 国产精品久久久久国产a级| 成人在线免费观看视频| gai在线观看免费高清| 亚洲色欲色欲www在线观看| 国产高清免费在线观看| 欧美精品xxx| 日本妇女一区| 日本美女高潮视频| 国产精品久久精品日日| 国产日韩欧美视频在线观看| 欧美日韩成人黄色| 久久国产精品免费精品3p| 四虎永久在线精品无码视频| 国产欧美日本一区二区三区| 一本色道久久综合无码人妻| 久久av在线播放| 大奶在线精品| 又色又爽又高潮免费视频国产| 中文字幕av不卡| 精品国产18久久久久久| 91国内免费在线视频| 精品国产精品国产偷麻豆| 亚洲色图偷拍视频| 五月天久久比比资源色| 3p在线观看| 超碰97国产在线| 久久亚洲电影| 午夜剧场免费在线观看| 亚洲国产欧美一区二区三区同亚洲| 日韩欧美另类一区二区| 最近看过的日韩成人| 99久久99久久精品免费看蜜桃| 日本妇乱大交xxxxx| 久久久久国产精品www| 国产videos久久| 97免费公开视频| 色妹子一区二区| 成人av免费| 日本不卡一区二区三区视频| 国产成人在线看| 中文字幕免费视频观看| 欧美精品videos| 日韩av有码|