Streams stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_pair — 연결되고 구별할 수 없는 소켓 스트림 쌍을 만듭니다.


설명

stream_socket_pair(int $domain, int $type, int $protocol): array|false

stream_socket_pair()는 연결되고 구별할 수 없는 소켓 스트림 쌍을 생성합니다. 이 함수는 IPC(Inter-Process Communication)에서 일반적으로 사용됩니다.


매개변수

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 또는 STREAM_IPPROTO_UDP

참고: 각 상수에 대한 자세한 내용은 Streams 상수 목록을 참조하십시오.


반환 값

성공하면 두 개의 소켓 리소스가 있는 배열을 반환하고 실패하면 false를 반환합니다.


Examples

예제 #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('could not fork');

} else if ($pid) {
     /* parent */
    fclose($sockets[0]);

    fwrite($sockets[1], "child PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* child */
    fclose($sockets[1]);

    fwrite($sockets[0], "message from child\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

child PID: 1378
message from child