Python进阶第六课--因特网客户端编程

1.前言

        消失了这么长时间以后,我胡汉三又回来了,这次回来是带着好东西回来的。这将近一个多月的时间没有更新,是在基础学完以后研究了《Python核心编程》第三版这本书,这本书适合有一定基础的Python学习者使用,里面涵盖的内容很多,主要分为:通用应用部分、Web开发部分、补充实验章节,一些我们耳熟能详的内容有:网络编程、数据库编程、多线程编程、GUI编程、Web框架:Django等等,从这节开始,我们将会一点一点的介绍这些东西,主要是一些代码的实例和我对这些内容的一些理解。话不多说,我们开始吧!

2.因特网客户端

        因特网客户端是什么呢?简单地来说就是传输数据的地方,数据在服务提供者和服务使用者之间传输,服务器就是生产者,提供服务,而客户端使用服务。在这里我们将介绍多个因特网协议,并创建相应的客户端程序,你会发现这些程序所代表的协议API都非常相似,因为我们要保持接口的一致性。下面就来看看要介绍的一些协议。

3.文件传输

3.1 文件传输协议

       文件传输协议(File Transfer Protocol,FTP)已经被记录在RFC中,主要用于匿名下载公共文件,也可以用于在两台计算机之间传输文件,特别是在使用Windows进行工作。

      FTP要求输入用户名和密码才能访问远程FTP服务器,但也允许没有账号的用户匿名登录,不过这需要管理员事先设置FTP服务器允许匿名登录,但是匿名用户只能使用有限的几个FTP命令。一般的FTP工作流程如下:

  1. 客户端连接远程主机上的FTP服务器。
  2. 客户端输入用户名和密码。
  3. 客户端进行各种文件传输和信息查询操作。
  4. 客户端从远程FTP服务器退出,结束传输。

     在上述的情况中也会出现一些例外,有时候由于网络两边的计算机的崩溃或者网络的问题,会导致整个传输在完成之前就中断,一般地,如果客户端超过15分钟还没有响应,FTP连接就会超时并中断。

    在底层,FTP只使用TCP而不使用UDP。客户端和服务器都使用两个套接字来通信:一个是控制和命令端口(21号端口),另一个是数据端口(20号端口)。数据端口好也有这样的情况,FTP有两种模式:主动和被动模式,只有在主动模式情况下服务器才使用数据端口,并使用20号端口。在被动模式的情况下,服务器只是告诉客户端随机的数据端口号,客户端必须主动建立数据连接。

3.2 Python中的FTP

     在Python中我们怎样编写FTP客户端呢,如下面这样的流程:

  1. 连接到服务器
  2. 登录
  3. 发出服务请求
  4. 退出

    在使用Python的FTP支持时,所需要的只是导入tfplib模块,并实例化一个ftplib.TFP类对象,从而我们有了下面这样的伪代码:

from ftplib import FTP
f=FTP('some.ftp.server')
f.login('anonymous','youremail.address')
...
...
f.quit()

    我们在Python中编写FTP客户端程序时候也需要一些高效的方法来帮助我们,来看看有那些好用的方法提供给我们:

方法 描述
login(username='anonymous',passwd=‘’,acct='') 登录FTP服务器,所有参数都可选的
pwd() 获得当前工作目录
cwd(path) 把当前工作目录设置为path所显示的内容
dir([path[,..[cb]]) 显示path目录里面的内容,可选参数cb是一个回调函数,会传递给retrlines()方法
nlst([path[,.....]]) 和dir类似,但返回一个文件名列表,而不是显示这些文件名
retrlines(cmd[,cb]) 给定FTP命令,用于下载文本文件,可选的回调函数cb用于处理文件的每一行
rename(old,new) 把远程文件old命名为new
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值