Nom de la fonction: socket_create_pair ()
Version applicable: PHP 4, PHP 5, PHP 7
Description de la fonction: La fonction socket_create_pair () est utilisée pour créer une paire de prises interconnectées, qui peuvent être utilisées pour communiquer dans le même processus.
Syntaxe: bool socket_create_pair (domaine int $, type int $, protocole int $, array & $ fd)
paramètre:
Valeur de retour: Retour True si une paire de prises interconnectées est créée avec succès. Si une erreur se produit, FALSE est renvoyé.
Exemple:
// 创建一对相互连接的套接字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; }
Dans l'exemple ci-dessus, en utilisant d'abord socket_create_pair () pour créer une paire de prises interconnectées et stocker les descripteurs de fichiers des deux sockets dans le tableau $ fd. Ensuite, un processus enfant est créé via pcntl_fork (), et le processus enfant envoie un message au processus parent. Le processus parent lit le message envoyé par le processus de l'enfant via socket_read () et le publie sur la console. Enfin, attendez que le processus de l'enfant se termine via pcntl_wait ().