ホームページ > バックエンド開発 > PHPチュートリアル > ネットワークプログラミングに PHP 組み込み関数を使用するにはどうすればよいですか?

ネットワークプログラミングに PHP 組み込み関数を使用するにはどうすればよいですか?

WBOY
リリース: 2024-04-23 08:27:01
オリジナル
979 人が閲覧しました

この記事では、ソケットの作成、ソケットのバインド、ソケットのリッスン、クライアント接続の受け入れ、データの送受信、ソケットのクローズなど、PHP の組み込み関数を使用したネットワーク プログラミングの手順について説明します。

如何使用 PHP 内置函数进行网络编程?

PHP 組み込み関数の使用: ネットワーク プログラミング

PHP には、ネットワーク プログラミングを簡単に実行できる一連の組み込み関数が用意されています。この記事では、これらの関数を使用してネットワーク ソケットを作成および使用する実際の例を検討します。

ネットワーク ソケットの作成

socket_create() 関数 は、ネットワーク ソケットの作成に使用されます。 3 つのパラメータを取ります:

  • $domain - ソケットのドメイン (例: IPv4 の AF_INET)
  • $ type - ソケットのタイプ (例: TCP の SOCK_STREAM)
  • $protocol - 使用するプロトコル (TCP の場合、通常は 0#) ##)
  • $socket = socket_create(AF_INET, SOCK_STREAM, 0);
    if (!$socket) {
        die("socket_create() 失败: " . socket_strerror(socket_last_error()));
    }
    ログイン後にコピー
ネットワーク ソケットのバインド

socket_bind() 関数 ソケットを特定のアドレスとポートにバインドします。次のパラメータを指定する必要があります:

  • $socket - バインドするソケット
  • $address - バインドするソケットIP アドレス
  • $port - バインドするポート
  • $address = "127.0.0.1";
    $port = 8080;
    if (!socket_bind($socket, $address, $port)) {
        die("socket_bind() 失败: " . socket_strerror(socket_last_error()));
    }
    ログイン後にコピー
リッスン ネットワーク ソケット

socket_listen () 機能 ソケットを待機状態に設定します。次のパラメータを指定する必要があります:

  • $socket - リッスンするソケット
  • $backlog - キューに入れられる最大数キュー 接続数
  • $backlog = 5;
    if (!socket_listen($socket, $backlog)) {
        die("socket_listen() 失败: " . socket_strerror(socket_last_error()));
    }
    ログイン後にコピー
クライアント接続の受け入れ

socket_accept() 関数 は、クライアント接続が到着するまでブロックされます。接続を表す新しいソケットを返します。

$client_socket = socket_accept($socket);
if (!$client_socket) {
    die("socket_accept() 失败: " . socket_strerror(socket_last_error()));
}
ログイン後にコピー

データの送受信

socket_send() および socket_recv() 関数 は、ソケット経由で送信するために使用され、データを受信します。

データの送信:

$data = "Hello, client!";
if (!socket_send($client_socket, $data, strlen($data), 0)) {
    die("socket_send() 失败: " . socket_strerror(socket_last_error()));
}
ログイン後にコピー

データの受信:

$buffer = socket_recv($client_socket, 1024, 0);
if (!$buffer) {
    die("socket_recv() 失败: " . socket_strerror(socket_last_error()));
}
ログイン後にコピー

ネットワーク ソケットを閉じる

Inネットワークソケットの使用が完了したら、それを閉じる必要があります。

クライアント ソケットを閉じる:

socket_close($client_socket);
ログイン後にコピー

サーバー ソケットを閉じる:

socket_close($socket);
ログイン後にコピー

以上がネットワークプログラミングに PHP 組み込み関数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート