現在の位置: ホーム> 関数カテゴリ一覧> socket_create_pair

socket_create_pair

区別できないソケットのペアを作成し、それらを配列に保存します
名前:socket_create_pair
カテゴリ:ソケット
対応言語:php
一言説明:同じプロセス内で通信するために使用できる相互接続ソケットのペアを作成します

関数名:socket_create_pair()

該当するバージョン:PHP 4、PHP 5、PHP 7

関数の説明:socket_create_pair()関数は、同じプロセス内で通信するために使用できる相互接続ソケットのペアを作成するために使用されます。

構文:bool socket_create_pair(int $ domain、int $ type、int $ protocol、array&$ fd)

パラメーター:

  • $ドメイン:ソケットのプロトコルドメイン。サポートされているプロトコルドメインには、AF_INET(IPv4ネットワークプロトコル)、AF_INET6(IPv6ネットワークプロトコル)、AF_UNIX(ローカルUNIXファイルシステムソケット)が含まれます。
  • $タイプ:ソケットのタイプ。サポートされているソケットタイプには、sock_stream(ストリームソケット、信頼性のある接続指向ソケット)とsock_dgram(データグラムソケット、コネクションレス、信頼性のないソケット)が含まれます。
  • $プロトコル:ソケットプロトコル。 IPPROTO_TCP(TCPプロトコル)またはIPPROTO_UDP(UDPプロトコル)です。
  • $ FD:2つのソケットファイル記述子を含む配列。作成が成功した後、最初のソケットのファイル記述子は$ fd [0]に保存され、2番目のソケットのファイル記述子は$ fd [1]に保存されます。

返品値:相互接続されたソケットのペアが正常に作成されている場合はtrueを返します。エラーが発生した場合、falseが返されます。

例:

 // 创建一对相互连接的套接字if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $fd) === false) { echo "套接字创建失败: " . socket_strerror(socket_last_error()) . "\n"; exit; } // 在两个套接字之间进行通信$pid = pcntl_fork(); if ($pid == -1) { echo "进程创建失败\n"; exit; } elseif ($pid == 0) { // 子进程$message = "Hello from child process!"; socket_write($fd[0], $message, strlen($message)); exit; } else { // 父进程$message = socket_read($fd[1], 1024); echo "接收到的消息: " . $message . "\n"; pcntl_wait($status); // 等待子进程结束exit; }

上記の例では、最初に、socket_create_pair()を使用して、相互接続されたソケットのペアを作成し、2つのソケットのファイル記述子を$ fd配列に保存します。次に、子プロセスがPCNTL_FORK()を介して作成され、子プロセスは親プロセスにメッセージを送信します。親プロセスは、socket_read()を介して子プロセスによって送信されたメッセージを読み取り、コンソールに出力します。最後に、子どものプロセスがPCNTL_WAIT()を介して終了するのを待ちます。

類似の関数
  • ソケットのソケットオプションを取得します socket_get_option

    socket_get_option

    ソケットのソケットオプションを取得します
  • 指定されたタイムアウトソケットアレイでselect()システムコールを実行します socket_select

    socket_select

    指定されたタイムアウトソケットアレイでs
  • インポートストリーム socket_import_stream

    socket_import_stream

    インポートストリーム
  • 区別できないソケットのペアを作成し、それらを配列に保存します socket_create_pair

    socket_create_pair

    区別できないソケットのペアを作成し、それ
  • AddRinfoの情報を入手してください socket_addrinfo_explain

    socket_addrinfo_explain

    AddRinfoの情報を入手してください
  • ソケットリソースにブロッキングモードを設定します socket_set_block

    socket_set_block

    ソケットリソースにブロッキングモードを設
  • メッセージを送信します socket_sendmsg

    socket_sendmsg

    メッセージを送信します
  • ソケットに書き込みます socket_write

    socket_write

    ソケットに書き込みます
人気記事(にんききじ)