Документация PHP


socket_create_listen

socket_create

Socket Функции

PHP Manual


socket_create_pair

(PHP 4 >= 4.0.7, PHP 5)

socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array

Описание

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

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in fd . This function is commonly used in IPC (InterProcess Communication).

Список параметров

domain

The domain parameter specifies the protocol family to be used by the socket. See socket_create() for the full list.

type

The type parameter selects the type of communication to be used by the socket. See socket_create() for the full list.

protocol

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

See socket_create() for the full list of supported protocols.

fd

Reference to an array in which the two socket resources will be inserted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 socket_create_pair() example

<?php
$sockets 
= array();
/* Setup socket pair */
if (socket_create_pair(AF_UNIXSOCK_STREAM0$sockets) === false) {
    echo 
"socket_create_pair failed. Reason: ".socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (socket_write($sockets[0], "ABCdef123\n"strlen("ABCdef123\n")) === false) {
    echo 
"socket_write() failed. Reason: ".socket_strerror(socket_last_error($sockets[0]));
}
if ((
$data socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ) === false) {
    echo 
"socket_read() failed. Reason: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

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

Пример #2 socket_create_pair() IPC example

<?php
$ary 
= array();
$strone 'Message From Parent.';
$strtwo 'Message From Child.';
if (
socket_create_pair(AF_UNIXSOCK_STREAM0$ary) === false) {
    echo 
"socket_create_pair() failed. Reason: ".socket_strerror(socket_last_error());
}
$pid pcntl_fork();
if (
$pid == -1) {
    echo 
'Could not fork Process.';
} elseif (
$pid) {
    
/*parent*/
    
socket_close($ary[0]);
    if (
socket_write($ary[1], $stronestrlen($strone)) === false) {
        echo 
"socket_write() failed. Reason: ".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], $strtwostrlen($strtwo)) === false) {
        echo 
"socket_write() failed. Reason: ".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]);
}
?>

Смотрите также


socket_create_listen

socket_create

Socket Функции

PHP Manual

SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…