• 【Python】python网络协议


    套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议。用于实现client-server的网络互联,以下对这些协议做一个简单的介绍。

    1、文件传输

    FTP:文件传输协议。能够上传或下载文件,採用了Unix多用户的概念,用户一定要输入有效的username和password才干使用,只是也支持匿名登录。

    在底层实现上,FTP仅仅使用TCP而不使用UDP。主动模式下使用两个套接字,各自是控制命令port和数据port。被动模式下使用一个套接字,为控制命令接口。client工作流程为:连接-登录-传输-结束。

    python相关模块为ftplib,使用时需要实例化一个ftplib.FTP类对象。典型的FTPclient有:命令行client程序、GUIclient程序、网页浏览器。以及自己开发的程序等。

    HTTP:网页的超文本传输协议。

    HTTP主要用于网页文件的下载和訪问Web服务上。它一般不要求用户输入登录的usernamepassword就能够訪问server上的文件和服务。

    scp/rsync:要求用户登录到server,否则不能上传或下载文件。

    rcp:远程文件复制协议。

    UUCP:复制协议。

    2、网络新闻

    Usenet新闻系统是一个全球存档的电子公告版,各种主题的新闻一应俱全,整个系统是一个由大量计算机组成的一个庞大的全球网络。计算机之间共享Usenet上的帖子,每一个系统都有一个它已经订阅的新闻组的列表。它仅仅接收它感兴趣的新闻组里的帖子。

    NNTP:网络新闻传输协议。

    供用户在新闻组中下载或发表帖子。仅仅使用一个标准port119来做通讯。

    相似于FTP。python相关模块为nntplib,使用时实例化nntplib.NNTP类对象。

    3、电子邮件

    电子邮件系统有很多组件。最基本的组件就是消息传输代理MTA,这是一个在邮件交换主机上执行的一个server程序,它负责邮件的路由、队列和发送工作,它们就是邮件从源主机到目的主机所要经过的跳板。

    SMTP:简单邮件传输协议。在因特网上MTA之间用于消息交换的最经常使用的MTS,它被MTA用来把电子邮件从一台主机传送到还有一台主机,在发电子邮件的时候。必需要连接到一个外部的SMTPserver,这时。发送的邮件程序是一个SMTPclient。SMTPserver也因此成为了消息的第一个跳板。python相关模块为smtplib,使用时实例化smtplib.SMTP类对象。通讯时,仅仅要一个port25

    除了SMTP之外。还有一些开源的MTA如Sendmail、Postfix和商业MTA如Microsoft的Exchange。

    邮件用户代理MUA从server上下载邮件,用于下载邮件的第一个协议叫邮局协议POP,目的是让用户的工作站能够訪问邮箱server里的邮件,邮件要能从工作站通过SMTP发送到邮件server。

    与POP相关的python模块为poplib, 使用时实例化poplib.POP3类对象。

    若干年之后,出现了还有一个协议。交互式邮件訪问协议IMAP,它比POP更为复杂。

    4、相关模块

    email:email处理的包(也支持MIME)

    rfc822:RFC2822邮件头解析器

    smtpd:SMTPserver

    base64:Base16、32和64数据编码(RFC 3548)

    mhlib:处理MH目录和信息的类

    mailbox:支持mailbox文件格式解析的类

    mailcap:mailcap文件的处理模块

    mimetools:(不建议使用)MIME信息解析工具(使用上面的email)

    mimetypes:在文件名称或URL到相关的MIME类型之间转换的模块

    MimeWriter:(不建议使用)MIME信息处理模块(使用上面的email)

    mimify:(不建议使用)信息的MIME处理工具(使用上面的email)

    binascii:二进制和ASCII转换

    binhex:Binhex4编码和解码支持

    ftplib:FTP协议client

    gopherlib:Gopher协议client

    httplib:HTTP和HTTPS协议client

    imaplib:IMAP4协议client

    nntplib:NNTP协议client

    poplib:POP3协议client

    smtplib:STMP协议client

    telnetlib:Telnet协议client类

  • 相关阅读:
    迅为4412开发板一键烧写QT程序到开发板
    迅为-i.IMX6Q开发板QT系统移植wifi-mt6620(一)
    迅为3399开发板人工智能测试-对象检测
    迅为IMX6ULL开发板搭建 Web 服务器
    迅为IMX6开发板AndroidStudio-ledtest小灯_测试
    迅为3399开发板Android7/Android8修改开机动画
    layui
    MyBatis
    开发过程,一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?
    做好测试计划工作的关键是什么?
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7198784.html
Copyright © 2020-2023  润新知