サーバーと通信する
サーバーに接続したので、前に開いたソケットを介してサーバーと通信できます。たとえば、特定のニュース グループから最新の 10 件の記事を取得したいとします。 RFC977 は、最初のステップは、GROUP コマンドを使用して正しいニュース グループを選択することであると指摘しています。
GROUP ggg
パラメータ ggg は、選択されるニュース グループの名前です (たとえば、「net.news」) )、これは必須です。利用可能なニュースグループのリストは、LIST コマンドを使用して取得できます。ニュースグループを選択するコマンドが成功すると、グループ内の最初と最後の記事の記事番号と、グループ内の記事の数が返されます。
次に例を示します。
chrome:~$ telnet my.news.host 119
aa.bb.cc.dd を試行しています...
my.news.host に接続しました。エスケープ文字は '^]' です。
200 my.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 を受信すると、サーバーは RFC で定義されている戻りコード「211 232 222996 223235 alt.test」を返します。コマンドは正常に実行されました。戻り情報には、現在 232 件の記事があり、最も古い記事番号が 222996、最新の記事番号が 223235 であることも指摘されています。 222996+232 は 223235 に等しくないことがわかります。欠落している 7 つの記事は、正当な著者によってキャンセルされたため (これは可能かつ簡単です)、またはスパム記事だったために、何らかの理由でサーバーから削除されました。
注意すべき点として、サーバーによっては、パブリック サーバーかプライベート サーバーかに応じて、ニュース グループを選択する前に認証が必要な場合があります。また、サーバーは誰でも記事を読むことを許可していますが、記事を公開するには認証が必要である可能性があります。
//$cfgUser = "xxxxxx";
//$cfgPasswd = "yyyyyy";
$cfgNewsGroup = "alt.php" ; 🎜>
//プライベートサーバーでは識別が必要です
if($cfgUser) {
fputs($usenet_handle, "AUTHINFO USER ".$cfgUser."n"); $usenet_handle, 1024);
fputs($usenet_handle, "AUTHINFO PASS ".$cfgPasswd."n"); // エラーをチェック
if($tmp != "281 Okrn") {
echo "502 Authentication errorn"; > }
//ニュースグループを選択
fput($usenet_handle, "GROUP ".$cfgNewsGroup."n"); fgets($usenet_handle, 1024);
if($ tmp == "480 認証が必要です") {
echo $tmp;
}
$info = split(" ", $tmp);
$first= $info[2];
$last = $info[3];
printf("最初 : %sn", $first);
printf("Last : % lastn", $last);
?>