真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在python中利用tcp在局域網(wǎng)中傳輸文件-創(chuàng)新互聯(lián)

怎么在python中利用tcp在局域網(wǎng)中傳輸文件?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營經(jīng)驗(yàn)。主營GPU顯卡服務(wù)器,站群服務(wù)器,服務(wù)器托管,海外高防服務(wù)器,大帶寬服務(wù)器,動態(tài)撥號VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。

功能:

可以利用python創(chuàng)建的TCP客戶端從我們自己搭建的TCP服務(wù)器上下載文件。

實(shí)現(xiàn)需求:

安裝socket模塊
簡單了解sokcet模塊用法

服務(wù)器代碼如下:

import socket

def file_deal(file_name):
 # 定義函數(shù)用于處理用戶索要下載的文件
 try:
 # 二進(jìn)制方式讀取
 files = open(file_name, "rb")

 mes = files.read()

 except:


 print("沒有該文件")

 else:

 files.close()

 return mes

def main():
 # 創(chuàng)建套接字
 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 # 固定端口號
 tcp_socket.bind(("",8888))
 # 將主動套接字轉(zhuǎn)為被動套接字
 tcp_socket.listen(128)

 while True:
 # 利用accept獲取分套接字以及客戶端的地址
 client_socket,client_addr = tcp_socket.accept()
 # 接收客戶端的數(shù)據(jù)
 file_name = client_socket.recv(4096)
 # 調(diào)用函數(shù)處理用戶下載的文件
 mes = file_deal(file_name)

 if mes:
  # 如果文件不為空發(fā)送

  client_socket.send(mes)
 #關(guān)閉分套接字

 client_socket.close()

if __name__ == "__main__":
 main()

import socket


def file_deal(file_name):
 # 定義函數(shù)用于處理用戶索要下載的文件
 try:
 # 二進(jìn)制方式讀取
 files = open(file_name, "rb")

 mes = files.read()

 except:


 print("沒有該文件")

 else:

 files.close()

 return mes

def main():
 # 創(chuàng)建套接字
 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 # 固定端口號
 tcp_socket.bind(("",8888))
 # 將主動套接字轉(zhuǎn)為被動套接字
 tcp_socket.listen(128)

 while True:
 # 利用accept獲取分套接字以及客戶端的地址
 client_socket,client_addr = tcp_socket.accept()
 # 接收客戶端的數(shù)據(jù)
 file_name = client_socket.recv(4096)
 # 調(diào)用函數(shù)處理用戶下載的文件
 mes = file_deal(file_name)

 if mes:
  # 如果文件不為空發(fā)送

  client_socket.send(mes)
 #關(guān)閉分套接字

 client_socket.close()


if __name__ == "__main__":
 main()

客戶端代碼:

from socket import *
import os

def main():
 # 建立套接字
 tcp_socket = socket(AF_INET, SOCK_STREAM)
 # 接收用輸入的服務(wù)器端的ip和端口
 tcp_ip = input("請輸入ip:")

 tcp_port = int(input("請輸入端口:"))
 # 連接服務(wù)器
 tcp_socket.connect((tcp_ip, tcp_port))
 # 輸入要下載的文件名
 file_name = input("請輸入要下載的文件名:")

 # 將文件名發(fā)送至服務(wù)器端
 tcp_socket.send(file_name.encode())
 # 創(chuàng)建一個空文件
 new_file = open(file_name, "wb")
 # 用與計算讀取的字節(jié)數(shù)
 time = 0

 while True:
 # 接收服務(wù)器端返回的內(nèi)容
 mes = tcp_socket.recv(4096)
 # 如果內(nèi)容不為空執(zhí)行
 if mes:
  # 解碼并向文件內(nèi)寫入
  new_file.write(mes.decode())

  # 計算字節(jié)
  time += len(mes)

 else:
  # 如果字節(jié)數(shù)為空即未收到內(nèi)容
  if time == 0:
  # 關(guān)閉文件
  new_file.close()
  # 刪除剛剛創(chuàng)建的文件
  os.remove(file_name)
  print("沒有您要下載的文件")
  else:
  # 如過time有值時name文件傳輸完成
  print("文件下載成功")

  break
 # 關(guān)閉套接字
 tcp_socket.close()


if __name__ == '__main__':
main()

看完上述內(nèi)容,你們掌握怎么在python中利用tcp在局域網(wǎng)中傳輸文件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享題目:怎么在python中利用tcp在局域網(wǎng)中傳輸文件-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/ggocs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部