ホームページ >バックエンド開発 >PHPチュートリアル >PHP ソケット通信メカニズムの例の説明とコード_PHP チュートリアル
PHP ソケット通信メカニズムの例の説明とコード
php チュートリアル ソケット通信メカニズムの例の説明とコード
1. ソケットとは通信チェーンのハンドルです。アプリケーションは通常、「ソケット」を通じてネットワークにリクエストを送信するか、ネットワークリクエストに応答します。端的に言えば、それはコミュニケーションのメカニズムです。これは、銀行、通信部門、その他の部門の電話顧客サービス部門に似ています。電話をかけると、顧客サービス部門がソケットのサーバー側に相当し、誰かが通話を終了するまではクライアント側に相当します。もちろん、お客様サービス部門の電話交換機が重複することはありません。
ソケットがどのように機能するかを説明するために、以下に例を示します。アプリケーション層をベースに開発する場合、必ずしも原理を理解する必要はありませんが、知っていたほうが良いでしょう。インターネット上にはソケットに関するphp APIがあります。置くだけで使えます。
2番目、ソケットサーバーserver.php
if(!$connection){
echo "接続失敗";
}else{
echo "ソケット接続n ";
// 情報データをクライアントに渡します
through ’ s ‐ ‐ ‐ ‐ ‐ クライアントに読み取ります
echo "socketn に書き込みました" ; Else {
echo "データがありませんbuffern ";
}
//クライアントからの情報を取得する($ data = @socket_read($ connection、php_normal_read)"。$ data "n"); /Closeソケット
printf ("closed theソケットn");
?>
3、ソケットクライアント client.php
//クライアントのソケット接続を確立します
$socket =ソケット_create(af_inet, sock_stream) , sol_tcp);
$connection =ソケット_connect($socket, '127.0.0.1', 10008); //サーバー側ソケットに接続します
while ($buffer = @socket_read($socket, 1024, php_normal_read)
//サーバーはクライアント端末に自身のステータスを通知します
if (preg_match("/not connect/",$buffer)) {
echo "don`t connectn"
} else { からの情報サーバー
echo "バッファ データ : " . $buffer .R Echo "Socketn への書き込み";
// 顧客の情報をチャネルに書き込み、サーバーに渡します。 // サーバーが情報を受信すると、応答メッセージが返されます
「n」;なぜphp コマンドを使用してサーバーとクライアントを実行しますか? クライアントで fsockopen を使用すると、ブラウザーでアクセスでき、少なくとも接続はタイムアウトします。これはなぜでしょうか? ソケットを作成すると、クライアントが接続を希望しているかどうかが常に監視されるからです。
ソケット通信の確立には、サーバーによって作成されるものとクライアントによって作成されるものの 2 つのソケット チャネルが必要です。
1 行目、サーバーはソケット チャネルを作成し、情報をキャッシュに置き、クライアントの接続を待ちます。
2 行目、クライアントはソケット チャネルを作成してサーバーに接続し、通信用のサーバー側の情報を取得します。チャネル
行 3 に送信されると、サーバーはクライアントから情報を取得し、情報を受信したことをクライアントに伝えます。送信する情報をチャネルに送信します
行 4. クライアントはサーバーから確認情報を取得します。この時点で、データ送信が完了すると、サーバーはソケット通信を切断します。操作は以下の通りです
1、ソケットサーバー側を実行
[root@blackghost zhangy]# /usr/local/php/bin/php -a /home/zhangy/www/test2/server.php
interactiveモードが有効になりましたこれで作業は完了しました
a、10008 ポートをリッスンします[zhangy@blackghost ~]$ netstat -an |grep listen |grep 10008
tcp 0 0 127.0.0.1:10008 0.0.0.0:* listen listen[zhangy@blackghost ~]$
b. 情報をキャッシュに送信します $buffer = "connect"; 上のコードを見てください
[root@blackghost zhangy]# /usr/local /php/bin/php -a /home /zhangy/www/test2/client.php
対話モードが有効
バッファデータ: 接続
サーバーに送信: 一部のデータ
サーバーからの応答: 情報を受信しました
3、サーバー側に戻ります
[root@blackghost zhangy]# /usr/local/php/bin/php -a /home/zhangy/www/test2/server.php
対話モードが有効になりました
ソケットが接続されました
データをクライアントに送信
ソケットに書き込まれました
バッファ: 一部のデータ
ソケットが閉じられました
www.bkjia.com
技術記事
PHP ソケット通信メカニズムの例の説明とコード PHP チュートリアル ソケット通信メカニズムの例の説明とコード 1、ソケットとは何ですか? いわゆるソケットは、通常ソケットとも呼ばれます...