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.
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: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno