1. 程式人生 > >Python 的網絡傳輸文件功能的設計與實現

Python 的網絡傳輸文件功能的設計與實現

roc 內容 guid 公司 代碼結構 網絡傳輸 智能 類型 模塊

Python 的網絡傳輸文件功能的設計與實現

摘要:Python 是目前較流行的程序設計語言之一,它具有簡單易學代碼簡潔等特點,並且Python 提供了大量的功能庫文件,開發大型應用程序時非常方便,廣泛用於網站開發、遊戲後臺開發等方面。該文基Python 提供的網絡編程庫,開發了網絡文件傳輸的功能,該功能可以快速有效地在互聯網上進行文件的傳輸。
1 Python 介紹
Python是由Guido van Rossum在1989年底創造的,在1991年發行了第一個公開版本。Python是一種面向對象的、解釋型的、動態數據類型的程序設計語言。Python的代碼具有很高的
可讀性,關鍵詞較少且代碼結構簡潔易懂,在完成同一個任務時,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。Python 一般用來完成日常任務,比如自動備份你的MP3等,也可以用來做網站,還可以用來做網絡遊戲的後臺。Py?thon為我們提供了非常完善的各種功能庫,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容,被形象地稱作“內置電池(batter?ies included)”。Python開發的過程中,許多功能不必從零編寫,直接使用現成的即可。Python的應用十分廣泛,比如YouTube、nstagram、國內的豆瓣網站就是用Python開發的,而且許多大公司,包括Google、Yahoo、NASA(美國航空航天局)等都大量地使用Python。
2 Python 網絡編程介紹
Python網絡編程是基於Socket進行開發的,Socket又稱"套接字",應用程序通過Socket"套接字"向網絡發出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。
Python 提供了兩個級別的網絡訪問服務:一個是支持基本的Socket的低級別的網絡服務,它提供了標準的BSD SocketsAPI,可以訪問底層操作系統Socket接口的全部方法;另一個是高級別的網絡服務模塊SocketServer,它提供了服務器的中心類,可以簡化網絡服務的開發。
3 Python 網絡編程的常用功能
3.1 建立套接字服務器與客戶在網絡通信前需要先建立套接字,具體語法如下:
s=socket.socket(套接字家族, 套接字類型, 網絡協議)
3.2 服務器綁定地址
服務器建立套接字後,首先綁定地址到套接字上,具體語法如下:
s.bind(主機名,端口號)
3.3 服務器監聽
服務器端綁定地址後,需要監聽客戶端請求,具體語法如下:
s.listen(最大連接數量)
3.4 服務器接受客戶端請求
服務器處於監聽狀態時,客戶端發送請求後需要接受請求,具體語法如下:
s.accept()
3.5 客戶端發起連接請求
客戶端建立套接字後,需要向服務器端發起連接請求,具體語法如下
s.connect(主機名,端口號)
4 Python 網絡傳輸文件功能的設計與實現
Python文件傳輸功能采用C/S結構,首先對服務器端套接字進行綁定地址監聽等操作,然後客戶端套接字發起連接請求後,服務器接受請求並獲取文件名及大小等信息,然後接受文件數據到指定地址完成傳輸,如圖1所示,具體實現代碼如下:服務器端:
import socket
import time
s=socket.socket()
host=socket.gethostname()
port=3245
s.bind((host,port))
s.listen(5)
while True:
fname=raw_input(‘請輸入文件名:‘)
file=open(fname,‘w‘)
c,addr=s.accept()
print ‘客戶端連接成功,連接地址:‘,addr
c.send(‘服務器連接成功!‘)
time.sleep(0.2)
len=c.recv(10)
print len
time.sleep(0.5)
len=int(len)
content=c.recv(len)
file.write(content)
file.close()
str=raw_input(‘是否繼續接收文件:(y/n):‘)
if str.lower()==‘y‘:
c, addr = s.accept() # 建立客戶端連接。
else:
Break
客戶端:
import socket
import os
import time
s=socket.socket()
host=socket.gethostname()
port=3245
s.connect((host,port))
while True:
print s.recv(1024)
file=open(‘test.txt‘,‘r‘)
fLen=os.path.getsize(‘test.txt‘)
s.send(str(fLen))
content=file.read(fLen)
time.sleep(2)
s.send(content)
file.close()
str=raw_input(‘是否繼續發送文件:(y/n):‘)
if str.lower()==‘n‘:
Break
圖1 客戶端與服務器端進行連接
5 結束語
Python語言是目前較流行的程序設計語言之一,它具有語法簡潔關鍵詞少等特點,簡單易學且功能強大。本文采用Py?thon提供的Socket功能,實現了網絡傳輸文件的功能,該功能實現了通過互聯網進行文件傳輸的功能,理論上文件長度沒有限制,且執行的效率較高。

本團隊核心人員組成主要包括矽谷工程師、BAT一線工程師,國內Top5碩士、博士生,精通德英語!我們主要業務範圍是代做編程大作業、課程設計等等。

我們的方向領域:window編程 數值算法 AI人工智能 金融統計 計量分析 大數據 網絡編程 WEB編程 通訊編程 遊戲編程多媒體linux 外掛編程 程序API圖像處理 嵌入式/單片機 數據庫編程 控制臺 進程與線程 網絡安全 匯編語言 硬件編程 軟件設計 工程標準規等。其中代寫代做編程語言或工具包括但不限於以下範圍:

C/C++/C#代寫

Java代寫

IT代寫

Python代寫

輔導編程作業

Matlab代寫

Haskell代寫

Processing代寫

Linux環境搭建

Rust代寫

Data Structure Assginment 數據結構代寫

MIPS代寫

Machine Learning 作業 代寫

Oracle/SQL/PostgreSQL/Pig 數據庫代寫/代做/輔導

Web開發、網站開發、網站作業

ASP.NET網站開發

Finance Insurace Statistics統計、回歸、叠代

Prolog代寫

Computer Computational method代做

因為專業,所以值得信賴。如有需要,請加QQ:99515681 或郵箱:[email protected]

微信:codinghelp

Python 的網絡傳輸文件功能的設計與實現