網絡新聞傳輸協議NNTP

1、Usenet與新聞組python

Usenet新聞系統是一個全球存檔的「電子公告板」,各類主題的新聞組包羅萬象。新聞組能夠是面向全球泛泛而談,也能夠是隻面向某一個地區區域。服務器

整個系統是由一個大量計算機組成的一個龐大的全球網絡,計算機之間共享Usenet上的帖子。網絡

若是某一個用戶發了一個帖子到本地的Usenet計算機上,這個帖子會傳播到其它相連的計算機上,並再由這些計算機傳到與它們相連的計算機上,直到這個帖子傳播到了全世界。架構

每一個系統都有一個它已經「訂閱」的新聞組的列表,它只接收它感興趣的新聞組裏的帖子——而不是服務器上全部新聞組的帖子。post

Usenet新聞組服務內容取決於服務提供者,不少都是可供公衆訪問的,也有一些只容許特定的用戶使用。ui

若是Usenet系統管理員設置了的話,有可能要求輸入用戶名和密碼。管理員也能夠設置是否只容許上傳或只容許下載。spa

 

2、網絡新聞傳輸協議(NNTP)指針

供用戶在新聞組中下載或發表帖子的方法叫網絡新聞傳輸協議(NNTP)。對象

做爲客戶端/服務器架構的另外一個例子,NNTP與FTP的操做方式很像,並且簡單的多。blog

FTP須要不一樣的端口來作登陸、數據傳輸和控制,而NNTP只使用一個標準端口119來作通信。你給服務器一個請求,它作出相應的反饋。

 

3、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() 關閉鏈接,而後退出。
相關文章
相關標籤/搜索