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_pair> <socket_connect
Last updated: Fri, 13 Nov 2009

view this page in

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listenAbre uma porta do socket para aceitar conexões

Descrição

resource socket_create_listen ( int $port [, int $backlog ] )
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome, incluindo toda documentação pode ser modificado sem aviso em futuras versões do PHP. Esta função deve ser usada por sua própria conta e risco.

Essa função significa facilidade na tarefa de criação de um novo socket que esteja na escuta somente para aceitar novas conexões.

socket_create_listen() cria um novo socket resource do tipo AF_INET escutando all interfaces loacis na porta especificada esperando por novas conexões.

O parâmetro backlog define o comprimento máximo da fila de espera de conexões pendentes até onde ela deve crescer. SOMAXCONN deve ser passado como o parâmetro backlog , veja socket_listen() para maiores informações.

socket_create_listen() retorna um novo socket resource em caso de sucesso ou FALSE em caso de erro. O código de erro pode ser retornado com socket_last_error(). Esse código deve ser passado para socket_strerror() para pegar uma explicação textual do erro.

Nota: Se você quer criar um socket com somente escutas em certas interfaces você deve precisar usar socket_create(), socket_bind() e socket_listen().

Veja também socket_create(), socket_bind(), socket_listen(), socket_last_error() e socket_strerror().



socket_create_pair> <socket_connect
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
socket_create_listen
vicente dot lopez at caixadesoft dot es
27-Jul-2009 07:29
I use this script to listen on 3 ports, but with 'netstat -a' in other console reports only the last one is 'LISTEN'.

#!/usr/bin/php -q
<?php
    $services
= array(
                               
56700    =>    'daemon1',
                               
56701    =>    'daemon2',
                               
56703    =>    'daemon3',
                            );
   
   
// --- Marca el Tiempo Ilimitado para pararse ---
   
set_time_limit (0);
   
   
$sockets = array();
   
    foreach(
$services as $port => $daemon)
    {
       
// --- Abre el socket ---
       
if ($sock = @socket_create_listen($port))
        {
           
$sockets[$sock] = $daemon;
        }
        else
        {
            echo(
"error\n");
        }
    }
   
   
print_r($sockets);
   
    while (
1)
    {
        echo
"";
    }   
?>
aeolianmeson at ifacfchi dot blitzeclipse dot com
26-Jun-2008 08:34
I believe that on some systems this may not bind to some or all public interfaces.

On my Windows system, I could not connect on the public interface using this, but could when I made the individual calls to create, bind, and listen.

Dustin Oprea
sysspoof at ng-lab dot org
06-Mar-2008 05:03
Please note that port 1 to and with 1024 on linux and bsd system require root privileges. So it is recommended to choose a higher port for your own application.
jdittmer at ppp0 dot net
17-Jul-2004 09:42
If you specify no port number, or 0, a random free port will be chosen.
To use ports for ipc between client/server on the same machine you can use (minus error checking)

server.php:
<?php
$sock
= socket_create_listen(0);
socket_getsockname($sock, $addr, $port);
print
"Server Listening on $addr:$port\n";
$fp = fopen($port_file, 'w');
fwrite($fp, $port);
fclose($fp);
while(
$c = socket_accept($sock)) {
  
/* do something useful */
  
socket_getpeername($c, $raddr, $rport);
   print
"Received Connection from $raddr:$rport\n";
}
socket_close($sock);
?>

client.php:
<?php
$fp
= fopen($port_file, 'r');
$port = fgets($fp, 1024);
fclose($fp);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, '127.0.0.1', $port);
socket_close($sock);
?>
basim at baassiri dot com
06-Feb-2004 08:50
Remember that ports are only valid from 1 - 65536

socket_create_pair> <socket_connect
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites