downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

socket_create> <socket_create_listen
[edit] Last updated: Fri, 23 Mar 2012

view this page in

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pairAyrılması olanaksız bir soket çifti oluşturur ve bunları bir dizide saklar

Açıklama

bool socket_create_pair ( int $aile , int $tür , int $protokol , array &$dt )

socket_create_pair() iki tane bağlı ve ayrılması olanaksız soket oluşturur ve bunları dt dizisine yerleştirir. Bu işlev genellikle süreçler arası iletişim için kullanılır.

Değiştirgeler

domain

Soket tarafından kullanılacak protokol ailesi. Tam liste için socket_create() işlevine bakın.

tür

Soket tarafından kullanılacak iletişimin türü. Tam liste için socket_create() işlevine bakın.

protokol

Soketten dönen iletişimi kullanacak aileye özgü protokol. Bu değer protol ismi belirtilerek getprotobyname() ile alınabilir. İstenen protokol bir TCP veya UDP protokolü ise SOL_TCP veya SOL_UDP sabiti değer olarak kullanılabilir.

Desteklenen protokollerin listesi için socket_create() işlevine bakın.

dt

Soket çiftinin yerleştirileceği gönderimli dizi.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.0 İşlev Windows platformlarında yeniden kullanılabilir oldu.
4.3.0 İşlev bir hatadan dolayı Windows platformlarında kullanılamaz oldu.

Örnekler

Örnek 1 - socket_create_pair() örneği

<?php
$sockets 
= array();

/* Windows'ta AF_INET kullanmamız lazım */
$domain = (strtoupper(substr(PHP_OS03)) == 'WIN' AF_INET AF_UNIX);

/* Soket çiftini alalım */
if (socket_create_pair($domainSOCK_STREAM0$sockets) === false)
{
    echo 
"socket_create_pair başarısız oldu. Sebep: ".
          
socket_strerror(socket_last_error());
}
/* Veri gönderip alalım */
if (socket_write($sockets[0], "ABCdnm123\n"strlen("ABCdnm123\n")) === false)
{
    echo 
"socket_write() başarısız oldu. Sebep: ".
          
socket_strerror(socket_last_error($sockets[0]));
}
if ((
$data socket_read($sockets[1], strlen("ABCdef123\n"),
    
PHP_BINARY_READ)) === false)
{
    echo 
"socket_read() başarısız oldu. Sebep: ".
          
socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Soketleri kapatalım */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Örnek 2 -socket_create_pair() IPC örneği

<?php
$ary 
= array();
$dizgebir 'Ebeveynin iletisi.';
$dizgeiki 'Çocuğun iletisi.';

if (
socket_create_pair(AF_UNIXSOCK_STREAM0$ary) === false)
{
    echo 
"socket_create_pair() başarısız oldu. Sebep: ".
          
socket_strerror(socket_last_error());
}
$pid pcntl_fork();
if (
$pid == -1)
{
    echo 
'Süreç çatallanamadı.';
}
elseif (
$pid)
{
    
/* ebeveyn */
    
socket_close($ary[0]);
    if (
socket_write($ary[1], $dizgebirstrlen($dizgebir)) === false)
    {
        echo 
"socket_write() başarısız oldu. Sebep: ".
              
socket_strerror(socket_last_error($ary[1]));
    }
    if (
socket_read($ary[1], strlen($dizgeiki), PHP_BINARY_READ) == $dizgeiki)
    {
        echo 
"$dizgeiki alındı\n";
    }
    
socket_close($ary[1]);
}
else
{
    
/* çocuk */
    
socket_close($ary[1]);
    if (
socket_write($ary[0], $dizgeikistrlen($dizgeiki)) === false)
    {
        echo 
"socket_write() başarısız oldu. Sebep: ".
              
socket_strerror(socket_last_error($ary[0]));
    }
    if (
socket_read($ary[0], strlen($dizgebir), PHP_BINARY_READ) == $dizgebir)
    {
        echo 
"$dizgebir alındı\n";
    }
    
socket_close($ary[0]);
}
?>

Ayrıca Bakınız



add a note add a note User Contributed Notes socket_create_pair
cweiske at php dot net 09-May-2009 07:45
The underlying sockpair() function does only support AF_UNIX at least on BSD and Linux.
thegreatall at gmail dot com 13-Jul-2007 05:24
There is a syntax error in one of the code samples provided, it should look like this:
<?php
$sockets
= array();
/* Setup socket pair */
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $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]);
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites