Python 的网络传输文件功能的设计与实现

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

猜你喜欢

转载自www.cnblogs.com/helpcode/p/8933032.html