ホームページ  >  記事  >  バックエンド開発  >  ソケットを使用してニュースグループから記事を取得する 2_PHP チュートリアル

ソケットを使用してニュースグループから記事を取得する 2_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:28:53769ブラウズ

サーバーと通信します
サーバーに接続したので、前に開いたソケットを介してサーバーと通信できます。たとえば、特定のニュース グループから最新の 10 件の記事を取得したいとします。 RFC977 は、最初のステップは、GROUP コマンドを使用して正しいニュース グループを選択することであると指摘しています:
GROUP ggg
パラメータ ggg は、選択されるニュース グループの名前 (たとえば、「net.news」) です。必須。利用可能なニュースグループのリストは、LIST コマンドを使用して取得できます。ニュースグループを選択するコマンドが成功すると、グループ内の最初と最後の記事の記事番号と、グループ内の記事の数が返されます。
以下に例を示します:
chrome:~$ telnet my.news.host 119
aa.bb.cc.dd を試行しています...
my.news.host に接続しています。
エスケープ文字は ^] です。 news.host InterNetNews NNRP サーバー INN 2.2.2 13-Dec-1999 準備完了 (投稿OK)
GROUP alt.test
211 232 222996 223235 alt.test
quit
205 。 コマンド GROUP alt.test を受信した後、サーバー 「211 232 222996 223235 alt.test」を返します。 211 は、RFC で定義されているリターン コードであり、コマンドが正常に実行されたことを示します。戻り情報には、現在 232 件の記事があり、最も古い記事番号が 222996、最新の記事番号が 223235 であることも指摘されています。 222996+232 は 223235 に等しくないことがわかります。欠落している 7 つの記事は、正当な著者によってキャンセルされたため (これは可能かつ簡単です)、またはスパム記事だったために、何らかの理由でサーバーから削除されました。
注意すべき点は、サーバーによっては、パブリック サーバーかプライベート サーバーかに応じて、ニュース グループを選択する前に認証が必要な場合があります。また、サーバーは誰でも記事を読むことを許可していますが、記事を公開するには認証が必要である可能性があります。
//$cfgUser = "xxxxxx";

//$cfgPasswd = "yyyyyy"; $cfgNewsGroup = "alt.php";
//プライベートサーバーでは識別が必要です($cfgUser) {
fputs($usenet_handle, "AUTHINFO USER ".$cfgUser."n");
$tmp = fgets($usenet_handle, 1024);
fputs($usenet_handle, "AUTHINFO PASS ".$cfgPasswd. "n");
$tmp = fgets($usenet_handle, 1024);
//エラーをチェック
if($tmp != "281 Okrn") {
echo "502 認証エラー"
}
}
//ニュースグループを選択
fput($usenet_handle, "GROUP ".$cfgNewsGroup."n");
$tmp = fgets($usenet_handle, 1024);
if($tmp == "480 commandrn には認証が必要です") {
echo $tmp;
exit();
}
$info = split(" ", $tmp);
$first= $info[2];
$last = $info[3];
printf ("最初 : %sn", $first);
printf("最後 : %lastn", $last);


http://www.bkjia.com/PHPjc/531736.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/531736.html技術記事サーバーとの通信 これでサーバーに接続できたので、先ほど開いたソケットを介してサーバーと通信できます。たとえば、特定のニュース グループから最新の 10 件の記事を取得したいとします。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。