ホームページ >バックエンド開発 >PHPチュートリアル >phpでのsocketの使い方の詳しい説明、phpsocket_PHPチュートリアルの詳しい説明

phpでのsocketの使い方の詳しい説明、phpsocket_PHPチュートリアルの詳しい説明

WBOY
WBOYオリジナル
2016-07-13 10:16:011019ブラウズ

phpでのsocketの使い方の詳しい説明、phpsocketの詳しい説明

この記事の例は、php でのソケットの使用法を詳細に説明しており、参考のために皆さんと共有されています。具体的な使い方は以下の通りです

1. ソケットを開きます

phpinfo(); ソケット拡張機能が有効かどうかを確認し、そうでない場合は php.ini で有効にします。

2. サーバーサイドコードの書き方

コードをコピーします コードは次のとおりです:
エラー報告(E_ALL);
set_time_limit(0);
//ob_implicit_flush();

$アドレス = '127.0.0.1';
$ポート = 10005;
//ポートを作成します
if( ($sock =socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() が失敗しました:reason:" 。socket_strerror(socket_last_error()) "n";
}

//バインディング
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() が失敗しました:reason:" 。socket_strerror(socket_last_error($sock)) "n";
}

//モニター
if (socket_listen($sock, 5) === false) {
echo "socket_bind() が失敗しました:reason:" 。socket_strerror(socket_last_error($sock)) "n";
}

する{
//リンクを取得します
if (($msgsock =ソケット_accept($sock)) === false) {
echo "socket_accepty() が失敗しました :reason:".socket_strerror(socket_last_error($sock)) "n";
休憩;
}
//クライアントにようこそ送信されました
$msg = "サーバー送信:ようこそ
";
socket_write($msgsock, $msg, strlen($msg));
echo 'クライアントメッセージを読む';
$buf =ソケット_読み取り($msgsock, 8192);
$talkback = "受信メッセージ:$bufn";
エコー $talkback;
if (false ===socket_write($msgsock, $talkback, strlen($talkback))) {
echo "socket_write() が失敗した理由:" .socket_strerror(socket_last_error($sock)) ."n";
} その他 {
echo '送信成功';
}
ソケットクローズ($msgsock);
while(true);
//ソケットを閉じる
ソケットクローズ($sock);
?>

サーバーは cli モードで実行する必要があります。cli モードでは php.ini ファイルが異なる方法でロードされる可能性があります。

次のように出力できます:

現時点では、zhoxh ディレクトリに tem.text ファイルがあります。構成ファイル (php.ini) のパス => C:WINDOWS を確認します。これは私の php.ini ファイルではありません。つまり、呼び出された php.ini ファイルが間違っています。このとき、php.iniファイルのコマンドを次のように指定する必要があります

私のphpは環境変数が設定された状態で直接実行できることに注意してください。

3. クライアント

コードをコピーします コードは次のとおりです:
//error_reporting(E_ALL);
echo "

tcp/ip 接続

n";
$service_port = 10005;
$アドレス = '127.0.0.1';
$socket =ソケット_作成(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
echo "socket_create() が失敗しました: 理由: " 。socket_strerror(socket_last_error()) 。 } その他 {
echo "OK.n";
}

echo "ポート '$service_port' の '$address' に接続しようとしています...";

$result =socket_connect($socket, $address, $service_port);

if($result === false) {
echo "socket_connect() が失敗しました。nReason: ($result) " 。socket_strerror(socket_last_error($socket)) "n";
} その他 {
「OK n」をエコーし​​ます;
}
$in = "HEAD/http/1.1rn";
$in .= "ホスト: ローカルホスト rn";
$in .= "接続: より近いnrn";
$out = "";
echo "http ヘッド リクエストを送信しています ...";
socket_write($socket, $in, strlen($in));
「OKn」をエコーし​​ます;

echo "応答を読み取っています:nn";

while ($out =socket_read($socket, 8192)) {

エコー $out;
}
echo "ソケットを閉じています..";
ソケットクローズ($ソケット);
エコー「わかりました。nn」;

実行結果は以下の通りです:
サーバー:

クライアント:

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

PHPにおけるソケットの主な役割は何ですか?何に使われますか?

通常、サーバーとの対話、データの送信などに使用されます。


PHP ソケット プログラミングはプロジェクトでよく使用されます

ソケットは、PHP ではあまり活用されていない機能です。今日は、クライアント接続を使用できるサーバーを生成し、クライアント上のソケットを使用して接続する方法を説明します。サーバーは詳細な処理情報をクライアントに送信します。
完全なソケットプロセスが表示されたら、それを将来のプログラム開発に使用します。サーバーは接続を可能にする HTTP サーバーであり、クライアントは Web ブラウザーです。これは単一のクライアント/サーバーの関係です。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/899064.html技術記事 phpでのsocketの使い方を詳しく解説 phpsocketの使い方を詳しく解説していますので、参考にしていただければと思います。具体的な使用方法は次のとおりです。 1. ソケット phpinfo() を開きます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:CI フレームワークのソース コードの読み取りメモ 1、CI フレームワークのソース コードのメモ_PHP チュートリアル次の記事:CI フレームワークのソース コードの読み取りメモ 1、CI フレームワークのソース コードのメモ_PHP チュートリアル

関連記事

続きを見る