Aktueller Standort: Startseite> Funktionskategorien> socket_create_pair

socket_create_pair

Erstellen Sie ein Paar ununterscheidbare Sockel und speichern Sie sie in einem Array
Name:socket_create_pair
Kategorie:Steckdosen
Programmiersprache:php
Kurzbeschreibung:Erstellen Sie ein Paar miteinander verbundener Sockel, mit denen Sie innerhalb desselben Prozesses kommunizieren können

Funktionsname: Socket_Create_Pair ()

Anwendbare Version: Php 4, Php 5, Php 7

Funktionsbeschreibung: Die Funktion von Socket_Create_Pair () wird verwendet, um ein Paar miteinander verbundener Steckdosen zu erstellen, die zur Kommunikation innerhalb desselben Prozesses verwendet werden können.

Syntax: BOOL SCOCKKET_CREATE_PAIR (int $ Domain, int $ type, int $ Protocol, Array & $ fd)

Parameter:

  • $ Domain: Die Protokolldomäne der Sockel. Zu den unterstützten Protokolldomänen gehören AF_INET (IPv4 -Netzwerkprotokoll), AF_INET6 (IPv6 -Netzwerkprotokoll) und AF_UNIX (lokale Unix -Dateisystem -Socket).
  • $ type: Der Typ der Sockel. Zu den unterstützten Socket-Typen gehören Sock_stream (Stream-Sockets, zuverlässige, miteinander verbundene Sockets) und Sock_dgram (Datagramm-Sockeln, verbindungslose, unzuverlässige Sockets).
  • $ Protokoll: Socket -Protokoll. Es kann IPPROTO_TCP (TCP -Protokoll) oder IpproTo_Ud (UDP -Protokoll) sein.
  • $ fd: Ein Array mit zwei Socket -Dateideskriptoren. Nach erfolgreicher Erstellung wird der Dateideskriptor für den ersten Socket in $ fd [0] gespeichert, während der Dateideskriptor für den zweiten Socket in $ fd [1] gespeichert ist.

Rückgabewert: Return true, wenn ein Paar miteinander verbundener Sockel erfolgreich erstellt wird. Wenn ein Fehler auftritt, wird False zurückgegeben.

Beispiel:

 // 创建一对相互连接的套接字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; }

Im obigen Beispiel erstellen Sie zunächst zunächst socket_create_pair () ein Paar miteinander verbundener Sockets und speichern die Dateideskriptoren der beiden Sockets im $ fd -Array. Anschließend wird ein untergeordneter Prozess über pcntl_fork () erstellt, und der untergeordnete Prozess sendet eine Nachricht an den übergeordneten Prozess. Der übergeordnete Prozess liest die vom untergeordneten Prozess gesendete Nachricht über Socket_read () und gibt sie an die Konsole aus. Warten Sie schließlich, bis der untergeordnete Prozess durch pcntl_wait () endet.

Ähnliche Funktionen
Beliebte Artikel