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

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

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

By Armel Fauveau 一木
PHP はリモートまたはローカルホストのソケットポートを開くことができます。この記事は、Socket を使用する小さな例です。Usenet ニュース グループ サーバーに接続し、サーバーと通信し、ニュース グループからいくつかの記事をダウンロードします。
php でソケットを開く
ソケットを開くには fsockopen() を使用します この関数は php3 と php4 の両方で使用できます。関数の宣言は次のようになります。
int fsockopen (string hostname, int port [, int errno [, string errstr [, double timeout]]])
この関数は、ホスト hostname のポートへの TCP 接続を開きます。 hostname には、有効なドメイン名または IP アドレスを指定できます。 udp 接続の場合は、プロトコルを指定する必要があります: udp://hostname。UNIX ドメインの場合、ホスト名はソケットへのパスを使用します。この場合、ポートは 0 に設定する必要があります。オプションの timeout パラメータは、ソケットを開くまでの待機時間を秒単位で設定するために使用されます。
fsockopen() の詳細については、以下を参照してください: http://www.php.net/manual/function.fsockopen.php
ネットワーク ニュース転送プロトコル
ニュースグループ サーバーにアクセスするには、NNTP (Network News Transfer Protocol) と呼ばれるプロトコルが必要です) 合意。このプロトコルは rfc977 で詳しく説明されており、http://www.w3.org/Protocols/rfc977/rfc977.html で入手できます。このドキュメントでは、NNTP サーバーへの接続方法、サーバーとの通信方法、およびこれらのタスクを実行するためのさまざまなコマンドについて説明します。
接続
NNTP サーバーに接続するには、そのホスト名 (または IP アドレス) とリッスンしているポートを知っている必要があります。接続試行の失敗によるプログラムのハングを回避するには、タイムアウト パラメータを使用する必要があります。
$cfgServer = "your.news.host";
$cfgPort = 119;

// ソケットを開きます
if(!$cfgTimeOut)
//タイムアウトなし
$usenet_handle = fsockopen($cfgServer, $cfgPort);
else
// タイムアウトあり
$usenet_handle = fsockopen($cfgServer, $cfgPort, &$errno, &$errstr,
if(! $usenet_handle) {
echo "接続に失敗しました。 ";
exit();
}
else {
echo "接続されました。 ";
$tmp = fgets($usenet_handle, 1024);
}
?>

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

tru​​ehttp://www.bkjia.com/PHPjc/531742.html技術記事 Armel Fauveau Yimuyi 著 PHP は、リモートまたはローカル ホストでソケット ポートを開くことができます。この記事は、Socket を使用する小さな例です。Usenet ニュース グループ サーバーに接続し、サーバーと通信します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。