Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

socket_listen

Description

Listens for a connection on a socket

Syntax

socket_listen(
    Socket $socket,
    int $backlog = 0
): bool

Parameters

socket

A Socket instance created with socket_create() or socket_addrinfo_bind()

backlog

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

NOTE: The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

Return

Returns true on success or false on failure.

The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Examples

1 · socket

<?

$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;

$socket = socket_create($domain, $type, $protocol);

    if($socket === false)
    {
        $error_code = socket_last_error();

        $socket_strerror = socket_strerror($error_code);

        die("socket_create: $socket_strerror");
    }

    $address = '127.0.0.1';

    $socket_bind = socket_bind($socket, $address);

    if($socket_bind === false)
    {
        $error_code = socket_last_error($socket);

        $socket_strerror = socket_strerror($error_code);

        die("socket_bind: $socket_strerror");
    }

    $return = socket_listen($socket);

    if($return === false)
    {
        $error_code = socket_last_error($socket);

        $socket_strerror = socket_strerror($error_code);

        die("socket_listen: $socket_strerror");
    }

    var_export($return);

socket_close($socket);

?>
true

2 · backlog

<?

$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;

$socket = socket_create($domain, $type, $protocol);

    if($socket === false)
    {
        $error_code = socket_last_error();

        $socket_strerror = socket_strerror($error_code);

        die("socket_create: $socket_strerror");
    }

    $address = '127.0.0.1';

    $socket_bind = socket_bind($socket, $address);

    if($socket_bind === false)
    {
        $error_code = socket_last_error($socket);

        $socket_strerror = socket_strerror($error_code);

        die("socket_bind: $socket_strerror");
    }

    $backlog = 1;

    $return = socket_listen($socket, $backlog);

    if($return === false)
    {
        $error_code = socket_last_error($socket);

        $socket_strerror = socket_strerror($error_code);

        die("socket_listen: $socket_strerror");
    }

    var_export($return);

socket_close($socket);

?>
true
HomeMenu