对python网络编程的学习_第1页
对python网络编程的学习_第2页
对python网络编程的学习_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、我对python网络编程的理解开首语:Python与我看过的unix高级环境编程等书籍原理上差不多一样,都需要socket来支撑,同时遵循TCP和UDP传输协议,在理论上和实际之中都需要创建客户端和服务端(C/S模式),利用socket数据流来进行通信。网络编程应有的两点前提:一、Socket:服务器与客户端之间进行通信媒介,信息都是以数据的形势存在,双方进行通信实际上都是在进行数据的交换,从而socket担当重要的角色,网络中“公交汽车”。这个网络公交汽车具备以下两点功能:1) Send:从字面上来理解:“发送”,在实际的编程用途也是发送,对网络之中数据流进行发送,在创建socket模块对象

2、以后调用此方法,可以发送程序想要发送的数据。2) Recv(receive简写):从字面来理解是“接受”,在实际编程之中用途也是接受,此功能用来接受对方发送的数据,在创建socket模块对象以后掉用此方法,可以接受通信双方发送的数据。有了以上两种方法后,解决了网络编程之中基本功能:接受和发送。但是在实际网络编程之中有以上两种方法永远不能解决实际问题,还得有许多其它的功能来支撑。Socket的种类: AF_UNIX:也叫AF_LOCAL,这是基于文件的; AF_NETLINK:这是Linux系统支持的一种套接字; AF_INET:这个套接字是基于网络的。 二、端口号:端口号就像打电话一样,有区号

3、和电话号。双方想要建立通信,就必须有此作为连接的前提,使用端口号一般是被限制的,在linux或者unix之中只有系统管理员才能使用1024以下端口号,这些端口号用于标准服务,比如80端口用于web服务。如果用Ctrl+C停止一个程序以后,要等上一段时间才能使用这个端口号,但是有时可能会返回一个错误信息“该端口正在使用”(在实际之中,我利用ctrl+c停止了进程之后,再运行同样的程序,会出错,我利用kill -9强制杀死了该进程,再次正常运行了该程序,体会了端口号的在实际之中存在)。三、创建简单网络程序: 简单服务器建立: Import socket S = socket.socket() Ho

4、st = socket.gethostname() Port = 1024 s.bind(host,port) s.listen(5) while True: c,addr = s.accept() print “连接来自于:”,addr c.send(谢谢你给连接!) c.close() 小型客户机: Import socket S = socket.socket() Host = socket.gethostname() Port = 1024 s.connect(host,port) print s.recv(1024) s.close() 程序解释:1) 创建和执行流程:服务器端:1.

5、建立socket对象,调用socket模块; 2.进行本地地址绑定; 3.进行监听客户端发来的连接消息; 4.循环接受连接请求; 5.发送消息或者接受消息; 6.完成任务后,关闭套接字。客户端:1.建立socket对象,调用socket对象; 2.连接请求; 3.接受消息; 4.完成任务后,关闭套接字。2)客户端中用到了“while True”,利用真循环调节来无限接受客户连接请求,在理论上可以做到,但是在实际之中收到物理条件的限制,到达一定条件后会关闭客户端。3)名词解释:bind(绑定)、listen(监听)、accept(接受)、connect(连接),recv(接受)。四、网络中中文件

6、操作:在使用的各种网络编程工作库,功能最为强大为urllib、urllib2,简单的调用就能将远程机子上的文件像本地自己的文件一样来使用,几乎可以把任何url指向的东西作为程序输入。这两个模块的功能差不多,但是只是简单的文件下载,urllib就足够,如果是要进行http验证或者用cookie来为自己的程序写扩展程序,urllib2是一个不错的选择。以下是使用方式:打开远程文件:From urllib import urlopen Webpage = urlopen()与使用本地文件不同的是,在使用远程文件的时候使用的是“只读”模式。Urlopen之中必须

7、包含一个连接到网页文件路径,此时才能用urlopen来打开文件。Urlopen返回的类文件对象支持close、read、readdline和readlines方法,当然也支持迭代。注:如果想要实验rullib但现在没有在线,可以用以file开头的URL访问本地文件,比如:c:向凯xiangkai.txt(记得要对“”进行转义)。下载远程文件:如果想在本地保存远程文件副本,此时urlopen提供了一个方法:urlretrieve。Urlretrieve返回一个元组(filename,headers)而不是类文件对象。如:Urlretrieve(,C:python_webpage.html)这个语句获取python的主页并把它储存在文件C:python_webpage.html中。如果没有指定文件名,文件就会在放在临时的位置,用open函数可以打开它,但如果完成了对它的操作,就可以删除它。要清理临时文件,可以调用urlcleanup函数,但不要提供参数,该函数会负责清理工作。感想与收获: 简单的网络编程我现在能够建立它,并且能够正常运行。但是这只是简单的网络编程,刚刚进入网络编程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论