一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python3利用tcp實現文件夾遠程傳輸

python3利用tcp實現文件夾遠程傳輸

2021-03-23 00:32WangF0 Python

這篇文章主要為大家詳細介紹了python3利用tcp實現文件夾遠程傳輸,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現文件夾遠程傳輸的具體代碼,供大家參考,具體內容如下

實現功能:

通過tcp協議模擬文件夾的下載,注意是文件夾,不是文件。

下面讓我們實現以下:

其中有部分功能還未實現有興趣的可以將代碼自行補全

服務器端代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import socket
import time
# 定義全局列表用來存儲子文件夾
list1 = []
 
 
def deal_file(files,dir_name,dir_socket):
  # 如果打開文件時報錯即files為文件夾
  try:
    old_file = open(os.path.join(dir_name.decode(),files),"rb")
  except:
    # 講導致報錯的文件夾放入全局列表等待處理
    global list1
    list1.append(files)
  else:
    # 沒有報錯則執行讀取發送關閉文件
    file_data = old_file.read()
    print("發送內容")
    dir_socket.send(file_data)
 
    old_file.close()
 
def deal_dir():
  # 待完善用于處理子文件夾,需要利用遞歸完成
  pass
 
 
def main():
  # 創建套接字
  tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 固定端口號
  tcp_socket.bind(("",9992))
  # 被動套接字轉換為主動套接字
  tcp_socket.listen(128)
  # 將隊列中的客戶端取出
  dir_socket,client_ip = tcp_socket.accept()
  # 接受客戶端消息
  dir_name = dir_socket.recv(1024)
  # 顯示文件列表
  file_list = os.listdir(dir_name.decode())
  # 將文件列表發送至客戶端
  dir_socket.send(str(file_list).encode())
  # 阻塞0.5s等待發送成功
  time.sleep(0.5)
  # 便利每個文件發送文件內容
  for files in file_list:
    deal_file(files, dir_name, dir_socket)
  global list1
  # 如果全局列表內有文件則
  if list1:
    # 帶完善
    pass
 
  else:
 
 
    dir_socket.close()
 
    print("文件全部傳輸完成")
    tcp_socket.close()
 
 
 
if __name__ == '__main__':
  main()

客戶端源碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import socket
import os
import threading
import time
 
 
def recv_data(files,dir_name,tcp_socket):
  file_data = tcp_socket.recv(1024)
  new_file = open(os.path.join(dir_name+"新", files),"wb")
 
  new_file.write(file_data)
  new_file.close()
  print("文件%s下載完成" % files)
def main():
  # 創建套接字
  tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 連接服務器
  tcp_socket.connect(("192.168.11.128", 9992))
 
  # 向服務器發送要拷貝的文件夾
  dir_name = input("請輸入要拷貝的文件夾")
  tcp_socket.send(dir_name.encode())
  # 新建文件夾
  os.mkdir(dir_name+"新")
  # 接受文件列表,循環打開文件寫入
  file_list = tcp_socket.recv(1024)
  a = eval(file_list)
  print(a)
  for files in eval(file_list.decode()):
    recv_data(files,dir_name,tcp_socket)
 
 
if __name__ == '__main__':
  main()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/wf134/article/details/78571811

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男女性刺激爽爽免费视频 | 贤妻良母电影日本 | 精品卡1卡2卡三卡免费视频 | 欧美视频在线一区二区三区 | 爱草影院| 呜呜别塞了啊抽插 | 国产精品久久久久久影视 | 午夜一区二区三区 | 99亚洲自拍| 成人动漫在线免费看 | 免费成年视频 | 日韩在线天堂免费观看 | 午夜理论片日本中文在线 | 99久久精品国语对白 | 波多野结衣一区免费作品 | 四虎影视国产精品婷婷 | 9丨精品国产高清自在线看 9久热这里只有精品免费 | 国产美女极品免费视频 | 免费观看日本视频 | 特级淫片欧美高清视频蜜桃 | 好大好深好舒服 | 青草视频在线观看免费视频 | 亚洲AV无码乱码国产麻豆穿越 | 放荡的女老板bd中文字幕 | 青青草原网 | 日韩一级片免费观看 | 久久久免费观看 | 久久成人永久免费播放 | porno美国xxxx| 无码人妻精品一区二区蜜桃在线看 | se在线播放 | 欧美精品成人a多人在线观看 | 天堂网www在线观看 天堂欧美 | 无码AV免费精品一区二区三区 | girlfriend动漫在线播放 | 久久视频这有精品63在线国产 | 国产视频在线一区 | 日本剧情片在线播放中文版 | 国产成人刺激视频在线观看 | 韩国三级动漫 | 国语对白做受xxxx |