低レベル プログラマ以外の場合、ソケットの内部実装メカニズムを深く理解することは非常に困難です。ソケットは、プロセス通信を実装するためにオペレーティング システムによってカプセル化された一連の関数であることを理解するだけで十分です。それを作成して呼び出すだけで十分です。
PHP の言語特性と位置付けにより、PHP はソケット クライアントにのみ適しており、ソケット サーバーには適していません。
ソケットは主に下位層とネットワーク サービスの開発を指向しているため、サーバー側は一般的に C や Java などの言語で実装されます。問題 (同時実行性、ブロッキングなど) に対する成熟した完全なソリューションもありますが、PHP は明らかにこのアプリケーション シナリオには適していません。 (推奨される学習: PHP ビデオ チュートリアル )
実際、PHP はソケットを通じて MySQL データベースを操作します。これはまさに、ソケットが基盤となるプロトコルを保護し、ネットワーク サービス間の相互接続を実現するためです。それらはシンプルになります。
従来のサーバーサイド言語で実装されたソケットに加えて、HTML5 の普及に伴い、ブラウザ クライアントに実装された WebSocket も徐々に登場しており、これは注目に値します。FlashSocket も優れたソリューションです。 。
クライアント側でソケットを操作するには、fsockopen、socket_create、stream_socket_clientなどの関数を使用できますが、PHP5の場合はstream_socket_clientを使用することを推奨します。
ソケット対話型アプリケーションの例: ソケットを使用したフォームの送信
新しい test.php ファイルを作成し、http:// に送信します。 demo.com/index .php?id=1 フォーム データを送信します。コードは次のとおりです:
<?php $data = array('comment'=>'this is a robot comment'); $data = http_build_query($data); $out = "POST http://demo.com/index.php?id=1 HTTP/1.1\r\n"; // 通过POST方式发送数据 $out .= "Host: demo.com\r\n"; $out .= "Content-type: application/x-www-form-urlencoded; charset=UTF-8\r\n"; $out .= "Content-length: ".strlen($data)."\r\n"; $out .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:48.0) Gecko/20100101 Firefox/48.0"."\r\n"; $out .= "Connection: close"."\r\n"."\r\n"; // 注意:此处有两个 \r\n $out .= $data."\r\n"; // 正文数据 $fp = fsockopen("demo.com", 80, $errno, $errstr, 30); // 创建socket客户端连接 // $fp = stream_socket_client("tcp://demo.com:80", $errno, $errstr, 30); 推荐这种写法 fwrite($fp, $out); // 向服务器发送数据 while (!feof($fp)) { echo fgets($fp, 1280); // 读取服务器响应的数据 } fclose($fp); // 关闭socket连接 ?>
次の点に注意する必要があります:
fsockopen の最初のパラメータには、IP アドレスを使用することもできます。SSL などを使用する場合を除き、 http:// 文字列を含めないでください。
リクエスト ヘッダーは、必ずしもすべてのヘッダー フィールドを含める必要はなく、一般的に必要なのは、いくつかのコアヘッダー
最後のヘッダーでは、Connection の後に 2 つの改行があります
エンコードの問題に注意してください
以上がなぜphpはソケットに適していないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









