日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

在PHP中使用Sockets:從Usenet中獲取文件

瀏覽:33日期:2024-02-24 17:51:29

作者:Armel Fauveau原文地址:http://www.phpbuilder.net/columns/armel20010427.php3譯者:許立強feifengxlq@gmail.comHttp://www.phpobject.net/blog/

PHP能夠打開遠程或者本地服務器的sockets!這里是一個使用socket的簡單的例子:連接到Usenet的新聞服務器,與服務器溝通,并從一個精確的新聞分組中下載一些文章。使用PHP打開Socket使用fsockopen()來打開一個Socket。這個函數在PHP3和PHP4中都存在。函數的原型如下:<?php

intfsockopen (string hostname, int port[, int errno[, string errstr[, double timeout]]])?>對于網絡主機,它將建立一個TCP的Socket的連接到主機名的端口上。主機名可以是域名或者IP地址。對于UDP連接,你需要明確指出其協議:udp://hostname。對于unix主機,主機名將在socket的路徑中使用,在這個例子中端口必須設置成0??蛇x項timeout可以用來設置連接超時的秒數。關于fsockopen()的更多信息可以訪問http://www.php.net/manual/function.fsockopen.php網絡新聞傳輸協議(NNTP)訪問一個usenet新聞服務器需要用到一個特別的協議,稱作NNTP,即網絡新聞傳輸協議標準。這個協議的詳細資料在RFC977中,你可以在http://www.w3.org/Protocols/rfc977/rfc977.html中查看到。這個文檔詳細的描述了如何使用不同的命令來連接并且和NNTP服務器對話。連接服務器連接到NNTP服務器需要知道服務器的主機名(或者IP地址)和它將要監聽的端口。另外建議你加上一個超時的時間,這樣連接失敗的時候就不會“凍結”程序。<?php$cfgServer;='your.news.host';$cfgPort;=119;$cfgTimeOut;=10;// open asocketif(!$cfgTimeOut) // without timeout $usenet_handle=fsockopen($cfgServer,$cfgPort);else // with timeout $usenet_handle=fsockopen($cfgServer,$cfgPort, &$errno, &$errstr,$cfgTimeOut);if(!$usenet_handle) { echo'Connexionfailedn'; exit();};else { echo'Connectedn'; $tmp=fgets($usenet_handle,1024);}?>與服務器交互現在我們已經連接上服務器了,而且能夠通過先前打開的socket連接與服務器進行交互。讓我們對服務器說“我們要從某一新聞分組中獲取到最新的10篇文章”。RFC977定義了如何選擇正確的新聞分組的命令,如下:GROUPggg必需的參數ggg是你將要選擇的新聞分組的名字,比如net.news。使用list命令你可以獲取到一組有效的新聞列表。成功選擇響應會返回組中首尾兩篇新聞的新聞號以及對存檔新聞號估計。比如chrome:~$ telnetmy.news.host 119Trying aa.bb.cc.dd...Connected tomy.news.host.Escape character is'^]'.200 my.news.hostInterNetNews NNRP server INN 2.2.2 13-Dec-1999 ready (posting ok).GROUP alt.test211 232 222996 223235alt.testquit205 .在接受到命令“GROUP alt.test”,新聞服務器返回了“211232 222996 223235 alt.test”。其中211是RFC標識碼(簡單的解釋說命令已經成功的執行—查看RFC你可以獲取更加詳細的資料),返回信息說明其中有232篇文章,其中最舊的新聞的索引號是222996,而最新的新聞索引號是223235?,F在讓我們計算下:222996+232并不等于232235。這丟失的文章或者從這服務器移除出去了,或者被他的作者取消了(是的,這是可能的,也是很容易實現的),或者是刪除了。小心起見,在選擇新聞分組之前,服務器可能需要認證,當然這是由服務器是否公開或者私有來決定的。一般是允許任何人獲取新聞,但發表新聞需要通過認證。<?php//$cfgUser;= 'xxxxxx';//$cfgPasswd;= 'yyyyyy';$cfgNewsGroup;='alt.php';// identification required on private serverif($cfgUser) { fputs($usenet_handle,'AUTHINFO USER'.$cfgUser.'n'); $tmp=fgets($usenet_handle,1024); fputs($usenet_handle,'AUTHINFOPASS'.$cfgPasswd.'n'); $tmp=fgets($usenet_handle,1024); // check error if($tmp!='281Okrn') { echo'502Authentication errorn'; exit(); };}// select newsgroupfputs($usenet_handle,'GROUP '.$cfgNewsGroup.'n');$tmp=fgets($usenet_handle,1024);if($tmp=='480 Authentication required for commandrn') { echo'$tmpn'; exit();};$info=split(' ',$tmp);$first=$info[2];$last=$info[3];

print'First : $firstn';print'Last : $lastn';?>獲取一些文章現在我們已經有最新文章的A索引號,那就能很容易的獲取最新的十篇文章。RFC977指出使用ARTICLE命令可以和文章的索引號或者消息的ID一起使用。為了小心起見,在這里,文章的索引號和消息ID是不同的,因為每個新聞服務器定義不同,所以在不同的新聞服務器上相同文章的索引號都會不一樣的,但是消息ID好是唯一的(包含在文章的頭部中)<?php$cfgLimit;=10;// upload last articles$boucle=$last-$cfgLimit;while ($boucle<=$last) { set_time_limit(0); fputs($usenet_handle,'ARTICLE$bouclen');; $article=''; $tmp=fgets($usenet_handle,4096); if(substr($tmp,0,3) !='220') { echo'+----------------------+n'; echo'Error onarticle $bouclen'; echo'+----------------------+n'; } else { while($tmp!='.rn') { $tmp=fgets($usenet_handle,4096); $article=$article.$tmp; };;;;; echo'+----------------------+n'; echo'Article$bouclen'; echo'+----------------------+n'; echo'$articlen'; }; $boucle++;}?>我們僅僅從這個服務器的這個分組上獲取了十條最新的新聞。你也可以使用HEAD命令來至獲取文章的頭部信息,或者使用BODY命令來獲取新聞的正文。關閉連接使用fclose()函數你就可以結束與NNTP服務器之間的會話,當然你可以些一個新的文件,如下:<?php// close connexionfclose($usenet_handle);?>更多關于fclose()的信息,請看:http://www.php.net/manual/function.fclose.php結論本文中,我們只說明了在確定的情況下如何打開、使用和關閉一個socket連接:連接上一個NNTP服務器然后從新聞分組中取回一些文章。使用POST命令在NNTP服務器上發表一篇文章并不復雜多少。因此,下一步就是編寫一個新聞客戶端(并去掉一些Netscape),它需要能很容易的保存文章,并使用一些搜索引擎(比如htgid,http://www.htdig.org/)來索引這些文章,而且要有一個WEB應用程序能進行新聞分組下的關鍵字搜索。這里有一個例子,你可以訪問http://www.phpindex.com/ng/去下載。

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99视频+国产日韩欧美| 影音先锋久久| 日韩中文欧美在线| 国产视频一区欧美| 亚洲在线网站| 中文一区一区三区免费在线观 | 精品网站999| 日本午夜精品久久久久| 久久性天堂网| av高清不卡| 久久久久久久欧美精品| 精品一区二区三区免费看| 国产精品最新| 久久精品人人| 久久精品导航| 亚洲资源av| 亚洲精品人人| 国产精品午夜av| 精品香蕉视频| 老牛影视精品| 欧美+亚洲+精品+三区| 不卡视频在线| 亚洲精品一级| 久久99国产精品视频| 日韩电影二区| 香蕉成人久久| 国产三级一区| 伊伊综合在线| 欧美日韩精品一本二本三本 | 美女av一区| 国产欧美一区二区三区精品酒店| 日韩久久一区二区三区| 亚洲激情不卡| 奇米色欧美一区二区三区| 久久中文字幕一区二区| 欧美一级精品| 亚洲精品少妇| 成人亚洲精品| 中文亚洲免费| 欧美国产另类| 亚洲一级二级| 欧美另类中文字幕| 日韩黄色大片| 综合色一区二区| 国产精品麻豆久久| 国产精品毛片在线| 欧美精品成人| 欧美高清不卡| 欧美一区不卡| 日韩精品午夜| 欧美一级二区| 久久影视一区| 欧美日本三区| 久久精品一区二区不卡| 日本欧美一区| 日韩国产激情| 午夜天堂精品久久久久| 国产福利91精品一区二区| 精品一区在线| 国产区精品区| 亚洲性视频h| 日本aⅴ亚洲精品中文乱码| 在线看片福利| 亚洲精品乱码| 久久精品国产68国产精品亚洲| 亚洲ww精品| 成人在线网站| 国产精品综合色区在线观看| 不卡视频在线| 成人高清一区| 日本成人在线一区| 不卡在线一区| 91视频精品| 欧美日韩亚洲一区二区三区在线| 久久久久亚洲| 国产精品porn| 视频一区视频二区在线观看| 欧美天堂视频| 久久国产精品美女| 蜜臀av国产精品久久久久| 国产va在线视频| 欧美日韩一区二区三区四区在线观看| 五月综合激情| 精品国产免费人成网站| 国产乱人伦精品一区| 免费在线成人网| 久久久成人网| 日产精品一区二区| 国产精品**亚洲精品| 亚洲乱亚洲高清| 婷婷综合激情| 成人污污视频| 国产精品久久久久久久久免费高清| 爽好久久久欧美精品| 久久精品播放| 女生影院久久| 精品三级在线| 日韩av中文字幕一区| 免费视频久久| 欧美大黑bbbbbbbbb在线| 伊人久久在线| 国产69精品久久| 久久精品一区二区国产| 久久精品xxxxx| 日韩三级精品| 亚洲综合中文| 99国产精品久久久久久久| 精品免费av在线| 高清一区二区| 韩日一区二区| 另类欧美日韩国产在线| 久久精品72免费观看| 亚洲tv在线| 视频一区国产视频| 丝袜美腿一区二区三区| 亚洲欧美日韩综合国产aⅴ| 夜夜精品视频| 在线综合视频| 免费视频久久| 天堂久久一区| 日本aⅴ亚洲精品中文乱码| 亚洲综合图色| 亚洲免费成人av在线| 亚洲影视一区二区三区| 亚洲狼人精品一区二区三区| 免费不卡在线观看| 亚洲三级av| 91亚洲精品视频在线观看| 日韩一区网站| 毛片在线网站| 国产精品欧美三级在线观看| 蜜桃av一区二区在线观看| 在线看片一区| 日本在线视频一区二区| 日韩三级视频| 欧美在线看片| 伊人网在线播放| 尤物网精品视频| 欧美中文日韩| 蜜臀久久99精品久久久久久9| 免费国产亚洲视频| 日本aⅴ亚洲精品中文乱码| 国产精品一区二区精品| 精品资源在线| 正在播放日韩精品| 午夜久久tv| 日本亚洲视频在线| 国产精品久一| 三上悠亚国产精品一区二区三区| 99tv成人| 久久不射网站| 一区二区91| 久久精品欧洲| 久久国产毛片| 久久aⅴ国产紧身牛仔裤| 日韩高清不卡一区二区| 欧美精品91| 久久裸体视频| 三级在线观看一区二区| 欧美一区二区三区久久| 久久精品国产福利| 欧美 日韩 国产一区二区在线视频 | 免费不卡中文字幕在线| 久久最新视频| 国产日产精品_国产精品毛片| 日本一二区不卡| 亚洲激情国产| 国产亚洲精品美女久久久久久久久久| 精品国产亚洲一区二区三区大结局 | 国产精品丝袜在线播放| 国产999精品在线观看| 91久久久精品国产| 欧美日韩亚洲一区在线观看| 亚洲成av在线| 亚洲精品成人一区| 久久久久久久欧美精品| 九九综合在线| 国产精品一区高清| 色婷婷亚洲mv天堂mv在影片| 亚洲一区欧美二区| 国产精品亚洲欧美一级在线 | 日韩伦理在线一区| 蜜臀久久99精品久久久久久9| 久久精品日韩欧美| 免费精品视频最新在线| 精品高清久久| 免费观看在线综合色| 在线一区av| 欧美日本一区| 亚洲成人日韩| 精品一区二区三区中文字幕视频| 亚洲一区日本| 福利一区在线| 蜜桃视频一区二区| 成人影视亚洲图片在线| 亚洲精品系列| 欧美亚洲精品在线| 久久久国产精品网站| 伊人国产精品| 久久久久一区|