php のソケット拡張機能をインストールすると、php に付属するさまざまなソケット関数を使用できるようになります。まず、各関数の関連パラメーターと使用方法を学びます。たとえば、WebSocket とその関数を介してサーバーに接続できることはすでに知っています。ドメイン名は 192.168.15.192 ポート番号は 9001 です。電話をかける手順を参考にしてソケットの接続方法を理解してください。
1. ## まず、電話をかけるときは、双方が電話機を持っている必要があります。ソケットでは、双方がドメイン名であるソケット番号を持っている必要があります。 ); ## リソースの種類
$error =ソケット_last_error($socket_create); ## 接続が成功した場合は int(0) が返されます
$strerror =ソケット_strerror ($error) ## エラーのテキスト説明を読んでください
# # この関数の公式説明へのリンクを貼ってください http://php.net/manual/en/function.socket-create.php
##最初のパラメータ $domain は、指定されたソケットで使用されるプロトコルです
これら 3 つを選択できます。私は最初の AF_INET を使用します:
AF_INET IPv4 に基づくインターネット プロトコル
AF_INET6 IPv6 インターネット ベースのプロトコル
AF_UNIX ローカル通信
## 2 番目のパラメーター $type は接続メソッドです
オプションは 5 つあり、私は最初の SOCK_STREAM を使用します:
SOCK_STREAM は、このタイプに基づいてシーケンシャル ソケット TCP プロトコルを提供します
SOCK_DGRAM は、これに基づいてデータ パケット UDP プロトコルをサポートしますタイプ
SOCK_SEQPACKET は固定最大長のデータグラムです 順序付けられた送信を提供し、各呼び出し中にデータ パケット全体を読み取ります
SOCK_RAW 生のネットワーク プロトコル アクセスを提供し、ユーザーが ICMP リクエスト (端末 ping リクエストなど) を実行するために一般的に使用されるプロトコルを手動で構築できるようにします)
SOCK_RDM は信頼性の高い順序付けを保証しません
## 3 番目のパラメーター $protocal は、指定された特定のプロトコル ドメインを設定します。$name は文字列であり、値を取得するために getprotobyname($name) を呼び出すことができます。 "、"icmp"、"ggp"、"tcp"、"egp"、"pup"、"udp"、"hmp"、"xns-idp"、"rdp"、"rvd"、私は getprotobyname("tcp ")、これは SOL_TCP 定数に対応する 6 を返しました。
3 番目のパラメーターは 2 種類しかないはずです。なぜこんなにたくさんあるのかわかりません $name:
SOL_TCP ## この定数を使用してテストは成功しました
SOL_UDP ## 試したことがない場合は、Google で検索してください...
その他の定数については、公式の定数定義マニュアルを参照してください http://php.net/manual/en/sockets .constants.php
2. 相手に電話をかける; 接続要求を発行するのと同等
$result =ソケット_connect($ソケット_create, "192.168.15.192", "9001");
## 3 つのパラメーターは、socket_create のリソースを書き込み、2 番目はドメイン名を書き込み、3 番目はポート番号を書き込みます
3。情報の読み取り
while($out = socket_read($create_socket, $length)){ var_dump($out); }
##ソケット読み取りには少なくとも 2 つのパラメーターがあります
最初のものパラメータはcreate_socketリソースです
2番目のパラメータは受信したいデータの長さをバイト単位で指定します
3番目のパラメータは型で省略可能です
デフォルトはPHP_BINARY_READ定数です上記が接続方法です。 PHP で websocket を使用します
ただし、実際に使用すると、ブラウザーのページが正常に情報を読み取れないことがよくあります。
以上がMAC上のPHPでのWebSocketの接続設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。