この記事では、ソケットの作成、ソケットのバインド、ソケットのリッスン、クライアント接続の受け入れ、データの送受信、ソケットのクローズなど、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() 関数
ソケットを特定のアドレスとポートにバインドします。次のパラメータを指定する必要があります:
- バインドするソケット
- バインドするソケットIP アドレス
- バインドするポート
$address = "127.0.0.1"; $port = 8080; if (!socket_bind($socket, $address, $port)) { die("socket_bind() 失败: " . socket_strerror(socket_last_error())); }
socket_listen () 機能
ソケットを待機状態に設定します。次のパラメータを指定する必要があります:
- リッスンするソケット
- キューに入れられる最大数キュー 接続数
$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())); }
クライアント ソケットを閉じる:
socket_close($client_socket);
サーバー ソケットを閉じる:
socket_close($socket);
以上がネットワークプログラミングに PHP 組み込み関数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。