ホームページ  >  記事  >  バックエンド開発  >  PHPソケット(fsockopen)によるアプリケーション例分析_PHPチュートリアル

PHPソケット(fsockopen)によるアプリケーション例分析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:10:37941ブラウズ

fsockopen 関数を使用できます。まず、php.ini でallow_url_open=on をオンにする必要があります。この関数はソケット クライアント コードをカプセル化します。

サーバー側コード:server.php

コードをコピー コードは次のとおりです:
error_reporting(E_ALL);
set_time_limit(0);
$address = '127.0 .0.1';
$port = 10008;
//ポートを作成します
if (($sock =socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() failed:reason:" . (socket_last_error() ) . "n";
}
//Binding
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() が失敗しました :reason:" . .socket_last_error($ sock)) . "n";
}
//Listening
if (socket_listen($sock, 5) === false) {
echo "socket_bind() が失敗しました :reason:" .ソケット_strerror(socket_last_error($) sock)) . "n";
}
while (true) {
//リンクを取得します
if (($msgsock =ソケット_accept($sock)) === false) {
echo "socket_accepty() が失敗しました :reason :".socket_strerror(socket_last_error($sock)) . "n";
break;
}
//クライアントにようこそ送信されました
$msg = "1.server send:welcome< ;/font> ;
";
socket_write($msgsock, $msg, strlen($msg)); //クライアントに情報を返す
echo 'read client messagen';
$buf =ソケット_read($ msgsock, 8192 ); //クライアントから送信された情報を取得します
$talkback = "2.received message:$bufn";
echo $talkback;
if (false ===ソケット_write($msgsock, $talkback, strlen( $talkback) )) { //クライアントに情報を返す
echo "socket_write() 失敗した理由:" .socket_strerror(socket_last_error($sock)) ."n";
} else {
echo 'send success';
}
socket_close( $msgsock);
}
socket_close($sock);

クライアントコード: fsocket.php

コードをコピー コードは次のとおりです:
$fp = fsockopen("127.0. 0.1", 10008, &$errno, &$errstr, 10);
if (!$fp) {
echo $errstr . " (". $errno . ")
n";
} else {
$in = "HEAD / http/1.1rn";
$in .= "HOST: localhost rn";
$in .= "接続: closenrn";
fputs($fp, $in);
while (!feof ($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}


http://www.bkjia.com/PHPjc/327077.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327077.html技術記事 fsockopen 関数を使用できます。まず、php.ini でallow_url_open=on をオンにする必要があります。この関数はソケット クライアント コードをカプセル化します。 サービス...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。