成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用socket函數(shù)從新聞組中獲取文章

這篇文章給大家分享的是有關(guān)如何使用socket函數(shù)從新聞組中獲取文章的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)是專業(yè)的南召網(wǎng)站建設(shè)公司,南召接單;提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行南召網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

socket函數(shù)聲明是什么樣的

intfsockopen(stringhostname,intport_

[,interrno[,stringerrstr[,doubletimeout]]])

這個函數(shù)將打開一個連接到主機hostname的port端口的TCP連接。hostname可以是一個有效的域名,或者是一個ip地址。對于udp連接,你必須指定協(xié)議:udp://hostname.對于unix域,主機名使用到socket的路徑,這種情況下,端口port必須置為0??蛇x的timeout參數(shù)用來設(shè)定等待打開一個socket的時間,單位為秒。

網(wǎng)絡(luò)新聞傳輸協(xié)議

訪問新聞組服務(wù)器需要通過稱為NNTP(網(wǎng)絡(luò)新聞傳輸協(xié)議)的協(xié)議來進行。這個文檔分別描述了怎樣連接到NNTP服務(wù)器,怎樣同服務(wù)器對話,以及完成這些任務(wù)的不同命令。

連接

連接到一個NNTP服務(wù)器需要知道它的主機名(或者是ip地址)和它偵聽的端口。為了避免一個連接企圖失敗導致程序掛起,你應(yīng)該使用timeout參數(shù)。

$cfgServer="your.news.host";

$cfgPort=119;

$cfgTimeOut=10;

//openasocket

if(!$cfgTimeOut)

//withouttimeout

$usenet_handle=fsockopen($cfgServer,$cfgPort);

else

//withtimeout

$usenet_handle=fsockopen($cfgServer,$cfgPort,&$errno,&$errstr,$cfgTimeOut);

if(!$usenet_handle){

echo"Connectionfailed.\n";

exit();

}

else{

echo"Connected.\n";

$tmp=fgets($usenet_handle,1024);

}

?>

與服務(wù)器對話

現(xiàn)在我們已經(jīng)連接到了服務(wù)器,可以通過前面打開的socket同服務(wù)器對話了。比如說我們要從某個新聞組得到最近的10篇文章。RFC977指出,第一步要用GROUP命令選擇正確的新聞組:

GROUPggg

參數(shù)ggg是要選擇的新聞組的名字(比如說是"net.news"),這是必需的。可用的新聞組的列表可以用LIST命令得到。選擇新聞組的命令成功后,返回組中第一篇和最后一篇文章的文章編號,以及組中文章的數(shù)目。

下面是一個例子:

chrome:~$telnetmy.news.host119

Tryingaa.bb.cc.dd...

Connectedtomy.news.host.

Escapecharacteris'^]'.

200my.news.hostInterNetNewsNNRPserverINN2.2.213-Dec-1999ready(postingok).

GROUPalt.test

211232222996223235alt.test

quit

205.

接收到命令GROUPalt.test后,服務(wù)器返回"211232222996223235alt.test".211是RFC中定義的返回碼,指示命令已成功執(zhí)行。返回信息還指出,現(xiàn)在有232篇文章,最早的文章的編號是222996,最新的文章的編號是223235。我們看到,222996+232并不等于223235。丟失的7篇文章因為某種原因被從服務(wù)器刪除了,可能是因為被它的合法作者取消了(這是可能的,而且很容易做到),或者因為是灌水文章而被刪。

需要注意的事,有些服務(wù)器在選擇新聞組之前可能要求身份認證,這取決于這是一個公共的或者是私用的服務(wù)器。也有可能服務(wù)器允許任何人讀取文章,但發(fā)表文章需要身份驗證。

//$cfgUser="xxxxxx";

//$cfgPasswd="yyyyyy";

$cfgNewsGroup="alt.php";

//identificationrequiredonprivateserver

if($cfgUser){

fputs($usenet_handle,"AUTHINFOUSER".$cfgUser."n");

$tmp=fgets($usenet_handle,1024);

fputs($usenet_handle,"AUTHINFOPASS".$cfgPasswd."n");

$tmp=fgets($usenet_handle,1024);

//checkerror

if($tmp!="281Okrn"){

echo"502Authenticationerrorn";

exit();

}

}

//selectnewsgroup

fput($usenet_handle,"GROUP".$cfgNewsGroup."n");

$tmp=fgets($usenet_handle,1024);

if($tmp=="480Authenticationrequiredforcommandrn"){

echo$tmp;

exit();

}

$info=split("",$tmp);

$first=$info[2];

$last=$info[3];

printf("First:%sn",$first);

printf("Last:%lastn",$last);

?>

感謝各位的閱讀!關(guān)于“如何使用socket函數(shù)從新聞組中獲取文章”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

本文標題:如何使用socket函數(shù)從新聞組中獲取文章
本文地址:http://jinyejixie.com/article46/jjpphg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)動態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
巴楚县| 琼结县| 辽源市| 荔浦县| 长沙县| 贵阳市| 介休市| 莱阳市| 习水县| 泽州县| 视频| 新河县| 新河县| 定襄县| 甘谷县| 台中市| 泽州县| 清远市| 吉水县| 定西市| 江口县| 河曲县| 固原市| 怀远县| 尼勒克县| 宜宾县| 体育| 沭阳县| 桐柏县| 独山县| 岢岚县| 普陀区| 泰兴市| 红原县| 札达县| 额尔古纳市| 镇沅| 海原县| 五台县| 乳源| 景谷|