欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3利用tcp實(shí)現(xiàn)文件夾遠(yuǎn)程傳輸

 更新時(shí)間:2018年07月28日 09:51:03   作者:WangF0  
這篇文章主要為大家詳細(xì)介紹了python3利用tcp實(shí)現(xiàn)文件夾遠(yuǎn)程傳輸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)文件夾遠(yuǎn)程傳輸?shù)木唧w代碼,供大家參考,具體內(nèi)容如下

實(shí)現(xiàn)功能:

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

下面讓我們實(shí)現(xiàn)以下:

其中有部分功能還未實(shí)現(xiàn)有興趣的可以將代碼自行補(bǔ)全

服務(wù)器端代碼:

import os
import socket
import time
# 定義全局列表用來存儲子文件夾
list1 = []


def deal_file(files,dir_name,dir_socket):
  # 如果打開文件時(shí)報(bào)錯(cuò)即files為文件夾
  try:
    old_file = open(os.path.join(dir_name.decode(),files),"rb")
  except:
    # 講導(dǎo)致報(bào)錯(cuò)的文件夾放入全局列表等待處理
    global list1
    list1.append(files)
  else:
    # 沒有報(bào)錯(cuò)則執(zhí)行讀取發(fā)送關(guān)閉文件
    file_data = old_file.read()
    print("發(fā)送內(nèi)容")
    dir_socket.send(file_data)

    old_file.close()

def deal_dir():
  # 待完善用于處理子文件夾,需要利用遞歸完成
  pass


def main():
  # 創(chuàng)建套接字
  tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 固定端口號
  tcp_socket.bind(("",9992))
  # 被動(dòng)套接字轉(zhuǎn)換為主動(dòng)套接字
  tcp_socket.listen(128)
  # 將隊(duì)列中的客戶端取出
  dir_socket,client_ip = tcp_socket.accept()
  # 接受客戶端消息
  dir_name = dir_socket.recv(1024)
  # 顯示文件列表
  file_list = os.listdir(dir_name.decode())
  # 將文件列表發(fā)送至客戶端
  dir_socket.send(str(file_list).encode())
  # 阻塞0.5s等待發(fā)送成功
  time.sleep(0.5)
  # 便利每個(gè)文件發(fā)送文件內(nèi)容
  for files in file_list:
    deal_file(files, dir_name, dir_socket)
  global list1
  # 如果全局列表內(nèi)有文件則
  if list1:
    # 帶完善
    pass

  else:


    dir_socket.close()

    print("文件全部傳輸完成")
    tcp_socket.close()



if __name__ == '__main__':
  main()

客戶端源碼:

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():
  # 創(chuàng)建套接字
  tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 連接服務(wù)器
  tcp_socket.connect(("192.168.11.128", 9992))

  # 向服務(wù)器發(fā)送要拷貝的文件夾
  dir_name = input("請輸入要拷貝的文件夾")
  tcp_socket.send(dir_name.encode())
  # 新建文件夾
  os.mkdir(dir_name+"新")
  # 接受文件列表,循環(huán)打開文件寫入
  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()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何將你的應(yīng)用遷移到Python3的三個(gè)步驟

    如何將你的應(yīng)用遷移到Python3的三個(gè)步驟

    這篇文章主要介紹了如何將你的應(yīng)用遷移到Python3的三個(gè)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入示例

    Python docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入示例

    這篇文章主要為大家介紹了Python docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入操作實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 利用python開發(fā)app實(shí)戰(zhàn)的方法

    利用python開發(fā)app實(shí)戰(zhàn)的方法

    這篇文章主要介紹了利用python開發(fā)app實(shí)戰(zhàn)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python生成個(gè)性簽名圖片獲取GUI過程解析

    Python生成個(gè)性簽名圖片獲取GUI過程解析

    這篇文章主要介紹了Python生成個(gè)性簽名圖片獲取GUI過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • python?lambda?表達(dá)式形式分析

    python?lambda?表達(dá)式形式分析

    這篇文章主要介紹了python?lambda?表達(dá)式形式分析,?lambda??表達(dá)式會(huì)創(chuàng)建一個(gè)函數(shù)對象,可以對其賦值并如同普通函數(shù)一樣使用,下面通過定義了一個(gè)求平方的?lambda?表達(dá)式展開主題內(nèi)容,需要的朋友可以參考一下
    2022-04-04
  • python繪制無向圖度分布曲線示例

    python繪制無向圖度分布曲線示例

    今天小編就為大家分享一篇python繪制無向圖度分布曲線示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python使用os模塊實(shí)現(xiàn)更高效地讀寫文件

    Python使用os模塊實(shí)現(xiàn)更高效地讀寫文件

    os是python標(biāo)準(zhǔn)庫,包含幾百個(gè)函數(shù)常用路徑操作、進(jìn)程管理、環(huán)境參數(shù)等好多類。本文將使用os模塊實(shí)現(xiàn)更高效地讀寫文件,感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • 解決Python 中英文混輸格式對齊的問題

    解決Python 中英文混輸格式對齊的問題

    今天小編就為大家分享一篇解決Python 中英文混輸格式對齊的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 以一個(gè)投票程序的實(shí)例來講解Python的Django框架使用

    以一個(gè)投票程序的實(shí)例來講解Python的Django框架使用

    這篇文章主要介紹了以一個(gè)投票程序的實(shí)例來講解Python的Django框架使用,Django是Python世界中人氣最高的MVC框架,需要的朋友可以參考下
    2016-02-02
  • Python入門教程之運(yùn)算符重載詳解

    Python入門教程之運(yùn)算符重載詳解

    運(yùn)算符重載意味著賦予超出其預(yù)定義的操作含義的擴(kuò)展含義。例如運(yùn)算符 + 用于添加兩個(gè)整數(shù)以及連接兩個(gè)字符串和合并兩個(gè)列表。本文將通過示例帶大家詳細(xì)了解Python的運(yùn)算符重載,感興趣的可以了解一下
    2022-09-09

最新評論