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

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

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

瀏覽:30日期: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。可選項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。現在讓我們計算下: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久久,三上悠亚国产精品一区二区三区
久久久久免费| 国产精品麻豆久久| 国产情侣久久| 日韩三区四区| 亚洲欧美日韩在线观看a三区 | 国产精品天天看天天狠| 国产一级成人av| 国产精品一级| 国产精品亚洲产品| 精品国产乱码久久久久久樱花| 精品三级久久久| 国产极品久久久久久久久波多结野| 日本欧美不卡| 丝袜美腿一区二区三区| 88久久精品| 久久精品观看| 国产探花在线精品| 欧美a级一区二区| 九色精品91| 国产精品资源| 精品精品99| 久久久影院免费| 视频一区在线视频| 亚洲制服欧美另类| 国产亚洲人成a在线v网站| 国产亚洲一区二区三区啪| av中文字幕在线观看第一页| 激情综合网五月| 涩涩涩久久久成人精品| 日韩欧美一区二区三区免费看| 日韩中文字幕区一区有砖一区 | 国产精品久久久亚洲一区| 久久99久久久精品欧美| 欧美综合另类| 日韩免费精品| 国产成人久久| 91精品丝袜国产高跟在线| 国产欧美久久一区二区三区| 日韩高清不卡| 欧美伊人影院| 欧美日韩国产在线观看网站 | 麻豆国产在线| 亚洲欧美在线综合| 久久精品999| 精品亚洲美女网站| 日韩高清电影一区| 91精品蜜臀一区二区三区在线| 日韩欧美精品一区二区综合视频| 精品成av人一区二区三区| 9久re热视频在线精品| 色乱码一区二区三区网站| 日韩精品免费观看视频| 久久亚洲国产精品尤物| 久久国产成人| 久久久久久婷| 日日夜夜免费精品| 欧美日韩色图| 美女视频网站久久| 伊人久久婷婷| 91精品国产91久久久久久黑人| 亚洲另类黄色| 999久久久免费精品国产| 免费一级欧美片在线观看网站| 亚洲精品日韩久久| 91精品福利| 欧美不卡高清一区二区三区| 国产精品久久久久久久久久齐齐| 国产农村妇女精品一区二区| 日本欧美不卡| 国产中文字幕一区二区三区| 亚洲精品系列| 欧美日韩精品免费观看视频完整| 伊人久久在线| 欧美日韩亚洲三区| 中文字幕中文字幕精品| japanese国产精品| 91中文字幕精品永久在线| 久久福利影视| 欧美成a人国产精品高清乱码在线观看片在线观看久| 亚洲精品极品| 中文在线中文资源| 美女视频网站久久| 亚洲午夜国产成人| 日韩免费高清| 欧美日韩一区二区三区在线电影| 色爱综合av| 久久亚洲欧洲| 女人天堂亚洲aⅴ在线观看| 国产欧美成人| 99亚洲视频| 99久久精品费精品国产| 国产乱子精品一区二区在线观看 | 麻豆精品蜜桃视频网站| 蜜臀av一区二区在线免费观看| 精品国产aⅴ| 欧美日一区二区在线观看| 在线午夜精品| 色婷婷久久久| av高清不卡| 香蕉久久一区| 日日夜夜免费精品| 制服诱惑一区二区| 欧美日韩一区二区综合| 91亚洲自偷观看高清| 国产日韩欧美一区二区三区在线观看 | 高清一区二区| 国产精品一区二区三区www| 免费在线观看成人| 欧美日韩国产一区精品一区| 中文av在线全新| 久久尤物视频| 国产精品网在线观看| 日韩国产欧美一区二区三区| 蜜臀av一区二区在线免费观看| 欧美在线亚洲| 不卡一区2区| 日韩精品第一区| 91综合视频| 91日韩欧美| 日产精品一区| 国产精品99久久免费| 欧美国产先锋| 国产精品大片免费观看| 国产精品777777在线播放 | 国产精久久一区二区| 日本午夜精品| 日韩成人精品一区二区三区| 亚洲黄页一区| 蜜臀av免费一区二区三区| 99久久久久国产精品| 五月天综合网站| 午夜国产精品视频免费体验区| 好看的av在线不卡观看| 在线一区视频| 亚洲欧洲日韩精品在线| 鲁大师成人一区二区三区 | 亚洲精品少妇| 日本欧美一区二区在线观看| 亚洲免费福利一区| 日本精品另类| 日韩区欧美区| 91中文字幕精品永久在线| 日韩高清中文字幕一区二区| 久久亚洲在线| 免费人成黄页网站在线一区二区| 亚洲伊人精品酒店| 国产免费av一区二区三区| 国产精品一区三区在线观看| 久久精品资源| 97se综合| 日韩中文字幕91| 亚洲精品高潮| 日韩高清成人| 丝袜美腿亚洲色图| 日本视频一区二区| 日本欧美国产| 亚洲欧美日韩高清在线| 蜜臀av亚洲一区中文字幕| 日本不卡视频在线| 精品国产欧美| 精品日韩视频| 国产精品一区二区免费福利视频 | 福利欧美精品在线| 欧美+亚洲+精品+三区| 一区二区三区四区在线观看国产日韩 | 美女少妇全过程你懂的久久| 亚洲精品裸体| 欧美丰满日韩| 老色鬼久久亚洲一区二区| 国产乱码精品| 妖精视频成人观看www| 国产欧美一区二区三区米奇| 日韩免费av| 亚洲精品激情| 久久男人av| 久久午夜视频| 成人片免费看| 日本一区中文字幕| 国产不卡人人| 亚洲伊人精品酒店| 九九99久久精品在免费线bt| 欧美日韩精品免费观看视频完整| 国产精品视频一区二区三区综合| 久久免费大视频| 国产精品久久国产愉拍| 国产99久久久国产精品成人免费| 日韩精品视频一区二区三区| 国产精品www.| 久久久久网站| 国产精品一区二区99| 亚洲午夜电影| 国产精品chinese| 中文久久精品| zzzwww在线看片免费| 亚洲tv在线| 欧美99久久| 91欧美日韩| 天堂久久一区| 亚洲精品黄色| 国产精品社区|