Loading:


socket_create_pair

bool socket_create_pair ( int $domain , int $type , int $protocol , array &$fd )

Tworzy pare gniazd nie do rozróżnienia i  zapisuje je w tablicy

Parametry

 

domain - ten parametr określa z jakiej rodziny protokołów zostało użyte gniazdo


type -
ten parametr typ komunikacji użytej przez gniazdo


protocol -
ustawia określony protokół wewnątrz określonej domeny użytej podczas komunikacji zrwóconej przez gniazdo.


fd - Odniesienie do tablicy, w której będą oba gniazda

 

 

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

 



Napisz Artyku³

Listing


//Example #1 socket_create_pair() example

<?php
$sockets = array();
/* przygotowanie pary gniazd */
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets) === false) {
    echo "socket_create_pair nieudane. Powód: ".socket_strerror(socket_last_error());
}
/* Wysyłanie i odbieranie danych*/
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "socket_write() nieudane. Powód: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ) === false) {
    echo "socket_read() nieudane. Powód: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* zamekamy gniazda */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Example #2 socket_create_pair() IPC example
<?php
$ary = array();
$strone = 'Message From Parent.';
$strtwo = 'Message From Child.';
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "socket_create_pair() nieudane. Powód: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'proces nie powinien sie rozwidlać.';
} elseif ($pid) {
    /*parent*/
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "socket_write() nieudane. Powód: ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*child*/
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "socket_write() nieudane. Powód: ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Recieved $strone\n";
    }
    socket_close($ary[0]);
}
?>
 




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors