一、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() 关闭连接,然后退出。

网络新闻传输协议NNTP的更多相关文章

  1. HTTP超文本传输协议-HTTP/1.1中文版

    摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外 ...

  2. 超文本传输协议-HTTP/1.1

    超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights R ...

  3. 一个有趣的问题——HTTP是“超文本传输协议”还是“超文本转移协议”

    最近在看<HTTP图解>这本书,书中提到了对国内对HTTP协议名称的翻译问题,并且给出了一些网友讨论的原稿链接,我看了一下觉得挺有意思的,另外我本人也觉得翻译对于理解协议本身非常重要,就整 ...

  4. 文件传输协议FTP

    之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP).阅读Usenet新闻组(NNTP).电子邮件发送(SMTP).从服务器上下载电子邮件(POP3.IMAP)等 ...

  5. QQ传输协议分析

    2015-06-16 16:27:07 一. 实验目的: 在虚拟机下NAT模式下通过Wireshark抓包,分析QQ的传输模式.了解QQ在传输信息过程中用到的协议.分析在Nat模式下,信息传输的穿透性 ...

  6. 【转】安全传输协议SSL和TLS及WTLS的原理

    一.首先要澄清一下名字的混淆 1.SSL(Secure Socket Layer)是Netscape公司设计的主要用于WEB的安全传输协议.这种协议在WEB上获得了广泛的应用. 2.IETF将SSL作 ...

  7. HTTPS----安全超文本传输协议

    HTTPS协议详解HTTPS以保密为目标研发,简单讲是HTTP的安全版.其安全基础是SSL协议,因此加密的详细内容请看SSL.全称Hypertext Transfer Protocol over Se ...

  8. ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  9. RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议

    RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...

随机推荐

  1. Working With Push Buttons In Oracle Forms

    Managing push buttons at run time in Oracle Forms is very simple and in this tutorial you will learn ...

  2. 在PythonAnyWhere上部署Django项目

    http://www.jianshu.com/p/91047e3a4ee9 将项目放到git上,然后将pathonanywhere上的ssh传到git上,没有的话先创建,然后从git上把项目拷贝到pa ...

  3. 通过Java的Domain类构建ElasticSearch的mapping

    通过给定一个Java的class类自行创建ElasticSearch的mapping Order的domain类 public class Order { public String system_i ...

  4. 关于阿里 weex 的使用与案例

    1. 阿里宣布开源Weex http://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=504089541&idx=1&sn=3a ...

  5. maven dubbo zookeeper 项目搭建(有效)jar包非war测试

    zookeeper安装以及dubbo-admin.war(管理端)配置启动,本章省略,参考其他内容 这里主要说服务提供者和消费者 项目结构: 1)服务端 DemoServer.java package ...

  6. Libimseti推荐系统

    技术:easyUI.jQuery.Spring.Struts.Hibernate.Mahout.MySQL 本Libimseti推荐系统使用数据.代码參考<Mahout in action> ...

  7. Openstack nova代码部分凝视一

    做个一个没怎么学过python的菜鸟.看源代码是最好的学习方式了,如今就从nova入手,主要凝视一下 nova/compute/api.py 中的 create_instance函数 def _cre ...

  8. Shiro学习(7)与Web整合

    Shiro提供了与Web集成的支持,其通过一个ShiroFilter入口来拦截须要安全控制的URL.然后进行对应的控制,ShiroFilter相似于如Strut2/SpringMVC这样的web框架的 ...

  9. 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版

    若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...

  10. centos配置ip

    /etc/sysconfig/network-scripts/ifcfg-eth0文件做如下修改 DEVICE=eth0 HWADDR=08:00:27:46:1D:E1 TYPE=Ethernet ...