socket_create_pair
구별 할 수없는 소켓 한 쌍을 만들고 배열에 보관하십시오.
함수 이름 : socket_create_pair ()
해당 버전 : PHP 4, PHP 5, PHP 7
기능 설명 : Socket_create_pair () 함수는 동일한 프로세스 내에서 통신하는 데 사용할 수있는 상호 연결된 소켓 한 쌍을 만드는 데 사용됩니다.
구문 : bool socket_create_pair (int $ domain, int $ 유형, int $ protocol, array & $ fd)
매개 변수 :
반환 값 : 반환 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 ()를 사용하여 상호 연결된 소켓 한 쌍을 만들고 두 소켓의 파일 설명자를 $ FD 배열에 저장합니다. 그런 다음 PCNTL_FORK ()을 통해 하위 프로세스가 생성되고 아동 프로세스는 부모 프로세스에 메시지를 보냅니다. 상위 프로세스는 Socket_read ()를 통해 하위 프로세스가 보낸 메시지를 읽고 콘솔로 출력합니다. 마지막으로, 아동 프로세스가 PCNTL_WAIT ()를 통해 끝날 때까지 기다리십시오.