PHP 入門ガイド: ソケット プログラミング
ソケット プログラミングとは、コンピューター ネットワーク上で通信する方法のことです。ソケット プログラミングを通じて、チャット ルーム、ネットワーク ゲーム、ネットワーク アプリケーションなど、さまざまなタイプのネットワーク アプリケーションを実装できます。インターネット通話などWeb開発の分野でも、リアルタイム通信やプッシュメッセージなどの機能を実現するなど、Webアプリケーションをよりカラフルでインタラクティブにするために、ソケットプログラミングは非常に重要な役割を果たしています。
PHP は非常に人気のある Web 開発言語であり、ソケット プログラミング関数も適切にサポートしています。この記事では、ソケットの概念、ソケットの種類、ソケットの作成と接続、ソケットの送受信などの操作など、PHP でのソケットプログラミングの基礎知識を紹介します。
ソケットとは何ですか?
ソケットは抽象的な概念で、通常、ネットワーク上の 2 台のコンピューター間の接続方法を表すために使用され、データの送信と通信に使用できます。ソケット プログラミングを通じて、TCP/IP プロトコルに基づいたネットワーク接続を確立し、2 台のコンピュータ間で双方向のデータ転送を行うことができます。
ソケットの種類
ソケット プログラミングでは、ストリーミング ソケット (SOCK_STREAM) とデータグラム ソケット (SOCK_DGRAM) の 2 種類のソケットがあります。
ストリーミング ソケットは接続指向のソケットであり、信頼性が高く効率的で、大量のデータの送信に使用できます。ストリーミング ソケットでは、データが順番に送信され、各データ パケットが送信者によって確認されて、データが正しく送受信されたことが確認されます。
Datagram Socket はコネクションレス型の Socket で、高速かつ低遅延という特徴があり、少量のデータを迅速に送信する必要があるシナリオに適しています。データグラムソケットではデータの送受信が独立して行われるため、データの順序は問題ありませんが、データを正しく受信、デコードできるかには注意が必要です。
ソケットの作成と接続
PHP では、socket_create 関数を使用してソケットを作成できます。この関数は、それぞれプロトコルの種類を表す、domain、type、protocol の 3 つのパラメータを渡す必要があります。ソケットのタイプ、プロトコルのバージョン。
たとえば、TCP/IP プロトコル タイプのストリーミング ソケットを作成するには、次のコードを使用できます。
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
ソケットを作成した後、ソケットのアドレスとポートをバインドする必要があります。ソケットバインド関数。たとえば、アドレス localhost とポート 80 でソケットをバインドするには、次のコードを使用できます。
$address = '127.0.0.1'; $port = 80; socket_bind($socket, $address, $port);
バインド後、ソケットをリッスンし、socket_listen 関数を通じて接続できます。例:
socket_listen($socket); $client = socket_accept($socket);
このうち、socket_accept 関数は、接続要求を待機することを意味し、データを送信および通信できる接続ソケットを返します。
ソケットの送受信
ソケット接続が確立された後、socket_write 関数を通じてデータを送信できます。たとえば、次のようになります。
$data = 'Hello World!'; socket_write($client, $data, strlen($data));
上記のコードでは、$client は次のことを表します。接続ソケット インターフェイス、$data は送信されるデータを表し、strlen($data) はデータの長さを表します。
データが送信された後、socket_read 関数を通じてデータを受信できます。例:
$data = socket_read($client, 1024);
上記のコードでは、$client は接続ソケットを示し、1024 は最大接続ソケットを示します。一度に 1024 バイトのデータを読み取ることができます。
ソケット プログラミングでは、データの送受信は通常ブロッキングであることに注意してください。つまり、プログラムは実行を続行する前に相手のデータが送受信されるのを待ちます。
概要
この記事では、ソケットの概念、ソケットの種類、ソケットの作成と接続、ソケットの送受信やその他の操作など、PHP でのソケット プログラミングの基礎知識を紹介します。ソケット プログラミングは Web 開発において非常に重要なテクノロジであり、これにより、より多彩な機能と対話性を実現できます。
以上がPHP 初心者ガイド: ソケット プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。