The underlying sockpair() function does only support AF_UNIX at least on BSD and Linux.socket_create_pair
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
socket_create_pair
Референца за `function.socket-create-pair.php` со подобрена типографија и навигација.
socket_create_pair
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array
= NULL
socket_create_pair() Создава пар на неразлични приклучоци и ги чува во низа pairсоздава два поврзани и неразлични приклучоци, и ги чува во
Параметри
domain-
На
domain. Оваа функција често се користи во IPC (InterProcess Communication). socket_create() параметарот ја специфицира фамилијата на протоколот што ќе се користи од приклучокот. Види type-
На
typeза целосната листа. socket_create() параметарот ја специфицира фамилијата на протоколот што ќе се користи од приклучокот. Види protocol-
На
protocolОбезбедува сигурен слој за датаграми што не гарантира нарачка. Ова најверојатно не е имплементирано на вашиот оперативен систем.domainпараметарот поставува специфичен протокол во рамките на наведениот getprotobyname()да се користи при комуникација на вратениот сокет. Правилната вредност може да се добие по име со користењеSOL_TCPПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци воSOL_UDPможе да се користи и.Константи за известување за грешки socket_create() параметарот го избира типот на комуникација што ќе се користи од приклучокот. Види
pair-
за целосната листа на поддржани протоколи. Сокет Референца до низа во која ќе бидат вметнати двата
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 socket_create_pair() example
<?php
$sockets = array();
/* On Windows we need to use AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);
/* Setup socket pair */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
echo "socket_create_pair failed. Reason: ".socket_strerror(socket_last_error());
}
/* Send and Receive 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() инстанци сега; претходно, беше референца до низа од
<?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() 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], $strone, strlen($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 "Received $strtwo\n";
}
socket_close($ary[1]);
} else {
/*child*/
socket_close($ary[1]);
if (socket_write($ary[0], $strtwo, strlen($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 "Received $strone\n";
}
socket_close($ary[0]);
}
?>Види Исто така
- socket_create() - Креирај сокет (крајна точка за комуникација)
- socket_create_listen() Враќа вредност на дадената опција, или
- socket_bind() IPC пример
- socket_listen() - Binds a name to a socket
- socket_last_error() - Враќа последна грешка на сокетот
- socket_strerror() - Reads a maximum of length bytes from a socket