一、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. 如何DIY一个简单的反弹Shell脚本

    00起因 之前在一个服务器上做测试的时候需要从本地连到服务器上,但是服务器没有开ssh服务,但是有python环境,想着自己写一个脚本可以从自己本地连接到服务器,然后服务器端可以将处理完的请求结果返回 ...

  2. 负样本采样及bias校准、ctr平滑

    参考:https://zhuanlan.zhihu.com/p/31529643 在CTR预估中,负样本采样是一种常见的特征工程方法.一般CTR预估的原始正负样本比可能达到1:1000~1:10000 ...

  3. spark-submit提交方式测试Demo

    写一个小小的Demo测试一下Spark提交程序的流程 Maven的pom文件 <properties> <maven.compiler.source>1.7</maven ...

  4. 2016.7.14 去掉Mybatis Generator生成的一堆 example

    参考资料: http://www.cnblogs.com/zerocold/p/4220955.html   mybatis generator自动生成的代码里老是有一堆example,需要改的时候, ...

  5. JDK8 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    JDK8 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装时最好在 ...

  6. vue相关知识

    1.看https://www.bilibili.com/video/av27969216/?p=54,看他的就够了 https://juejin.im/post/5a5bc8c36fb9a01ca26 ...

  7. 【Excle数据透视表】如何快速选取所有标签并标注黄色底纹

    如下图:需要把所有标签标注为黄色底纹该如何操作呢? 步骤 单击数据透视表任意单元格→数据透视表工具→分析→选择→整个数据透视表→选择→标签→开始→字体组合中"填充颜色" 第一次选择 ...

  8. WebService中获取request对象一例

    @WebService @Service public class WeiXinWebServiceImpl implements IWeiXinWebService { @Resource priv ...

  9. HTML字体对应word字体

    42磅对应初号. 36磅对应小初. 26磅对应一号. 24磅对应小一号. 22磅对应二号. 18磅对应小二号. 16磅对应三号. 15磅对应小三号. 14磅对应四号. 12磅对应小四号. 10.5磅对 ...

  10. python 中给文件加锁——fcntl模块

    如果没有fcntl模块则用 sudo pip install fcntl安装 模块简单说明: 打开文件,不存在则创建之 f = open('./test','w') fcntl.flock(f,fcn ...