• 网络新闻传输协议NNTP


    一、Usenet与新闻组

    Usenet新闻系统是一个全球存档的“电子公告板”,各种主题的新闻组一应俱全。新闻组可以是面向全球泛泛而谈,也可以是只面向某一个地区区域。

    整个系统是由一个大量计算机组成的一个庞大的全球网络,计算机之间共享Usenet上的帖子。

    如果某一个用户发了一个帖子到本地的Usenet计算机上,这个帖子会传播到其它相连的计算机上,并再由这些计算机传到与它们相连的计算机上,直到这个帖子传播到了全世界。

    每个系统都有一个它已经“订阅”的新闻组的列表,它只接收它感兴趣的新闻组里的帖子——而不是服务器上所有新闻组的帖子。

    Usenet新闻组服务内容取决于服务提供者,很多都是可供公众访问的,也有一些只允许特定的用户使用。

    如果Usenet系统管理员设置了的话,有可能要求输入用户名和密码。管理员也可以设置是否只允许上传或只允许下载。

    二、网络新闻传输协议(NNTP)

    供用户在新闻组中下载或发表帖子的方法叫网络新闻传输协议(NNTP)。

    作为客户端/服务器架构的另一个例子,NNTP与FTP的操作方式很像,而且简单的多。

    FTP需要不同的端口来做登录、数据传输和控制,而NNTP只使用一个标准端口119来做通讯。你给服务器一个请求,它做出相应的反馈。

    三、python和NNTP

    与FTP协议一样,NNTP也有个专属的类nntplib来施展它的才能。

    NNTP对象的方法
    方法 描述
     group(name)  选择一个组的名字,返回一个元组(rsp,ct,fst,lst,group):服务器的返回信息文章的数量、第一个和最后一个文章的号码以及组名,所有数据都是字符串(返回的group与我们传进去的那么应该是相同的)
    xhdr(hdr,artrg,     [ofile])                    返回文章范围artrg(“头-尾”的格式)内文章hdr头的列表,或输出到文件ofile中 
    body(id[,ofile])   给定文章的id,id可以是消息的ID(放在尖括号里),或一个文章号(是一个字符串),返回一个元祖(rsp,anum,mid,data):服务器的返回信息、文章号(是一个字符串)、消息的ID(放在尖括号里)和文章所有行的列表或把数据输出到文件ofile中
     head(id)  与body()相似,只是返回的元祖中那个行的列表中只包含了文章的标题
    article(id)   也跟body()一样,只是返回的元祖中哪个行的列表中包含了文章的标题和内容
    stat(id)   让文章的“指针”指向id(同上,是一个消息的ID或是文章的号码)。返回一个跟body一样的元祖(rsp,anum,mid),但不包含文章的数据
    next()  用法和stat()类似,把文章指针移到下一篇文章,返回与stat()相似的元祖 
    last()   用法和stat()类似,把文章指针转移到最后一篇文章,返回与stat()相似的元祖
     post(ufile) 上传ufile文件对象里的内容(使用ufile.readlines()),并在当前新闻组发表 
    quit() 关闭连接,然后退出。
  • 相关阅读:
    【VUE】自定义组件
    【docker】Dockerfile
    【docker】常用命令
    【Java Web开发学习】跨域请求
    xshell6和xftp6运行提示缺少mfc110u.dll文件的解决办法
    【NPM】使用问题记录
    【Zuul】使用学习
    第八章 泛型程序设计
    第九章 集合
    分布式系列二: 分布式系统的通信
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/7902401.html
Copyright © 2020-2023  润新知