ホームページ  >  記事  >  バックエンド開発  >  PHP 初心者ガイド: ソケット プログラミング

PHP 初心者ガイド: ソケット プログラミング

王林
王林オリジナル
2023-05-21 08:31:511401ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。