(PHP 5 >= 5.1.0, PHP 7, PHP 8)
stream_socket_pair — Создаёт пару подключённых, неразличимых потоков сокетов
stream_socket_pair() создаёт пару подключённых, неразличимых потоков сокетов. Эта функция обычно используется в IPC (межпроцессном взаимодействии).
domain
       Используемое семейство протоколов: STREAM_PF_INET,
       STREAM_PF_INET6 или
       STREAM_PF_UNIX
      
type
       Используемый тип взаимодействия:
       STREAM_SOCK_DGRAM,
       STREAM_SOCK_RAW,
       STREAM_SOCK_RDM,
       STREAM_SOCK_SEQPACKET или
       STREAM_SOCK_STREAM
      
protocol
       Используемый протокол: STREAM_IPPROTO_ICMP,
       STREAM_IPPROTO_IP,
       STREAM_IPPROTO_RAW,
       STREAM_IPPROTO_TCP or
       STREAM_IPPROTO_UDP
      
Замечание: Пожалуйста, обратитесь к разделу Список потоковых констант за подробной информацией по каждой константе.
   Возвращает массив (array) с двумя потоковыми ресурсами в случае успешного выполнения, или
   false в случае неудачи.
  
Пример #1 Пример использования stream_socket_pair()
Этот пример демонстрирует основы использования функции stream_socket_pair() в межпроцессном взаимодействии.
<?php
$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();
if ($pid == -1) {
     die('не удалось создать процесс');
} else if ($pid) {
     /* родительский процесс */
    fclose($sockets[0]);
    fwrite($sockets[1], "дочерний PID: $pid\n");
    echo fgets($sockets[1]);
    fclose($sockets[1]);
} else {
    /* дочерний процесс */
    fclose($sockets[1]);
    fwrite($sockets[0], "сообщение от дочернего процесса\n");
    echo fgets($sockets[0]);
    fclose($sockets[0]);
}
?>Вывод приведённого примера будет похож на:
дочерний PID: 1378 сообщение от дочернего процесса
