stream_socket_server

Create an Internet or Unix domain server socket

Syntax

stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] ) : resource

Parameters

local_socket

The type of socket created is determined by the transport specified using standard URL formatting: transport://target.

For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See List of Supported Socket Transports for a list of bulitin transports.

errno

If the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

errstr

See errno description.

flags

A bitmask field which may be set to any combination of socket creation flags.

Note: For UDP sockets, you must use STREAM_SERVER_BIND as the flags parameter.

context

Return

Returns the created stream, or FALSE on error.

Examples

1 · local_socket

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;

$return = stream_socket_server($local_socket);

    if (!$return)
    {
        exit;
    }

    while ($socket = stream_socket_accept($return))
    {
        $string = "local time: " . date('n/j/Y g:i a') . "\n";

        fwrite($socket, $string);
        fclose($socket);
    }

fclose($return);

?>

2 · errno

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;

$return = stream_socket_server($local_socket, $errno);

    if (!$return)
    {
        exit("$errno");
    }

    while ($socket = stream_socket_accept($return))
    {
        $string = "local time: " . date('n/j/Y g:i a') . "\n";

        fwrite($socket, $string);
        fclose($socket);
    }

fclose($return);

?>

3 · errstr

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;

$return = stream_socket_server($local_socket, $errno, $errstr);

    if (!$return)
    {
        exit("$errstr ($errno)");
    }

    while ($socket = stream_socket_accept($return))
    {
        $string = "local time: " . date('n/j/Y g:i a') . "\n";

        fwrite($socket, $string);
        fclose($socket);
    }

fclose($return);

?>

4 · flags

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;
$flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;

$return = stream_socket_server($local_socket, $errno, $errstr, $flags);

    if (!$return)
    {
        exit("$errstr ($errno)");
    }

    while ($socket = stream_socket_accept($return))
    {
        $string = "local time: " . date('n/j/Y g:i a') . "\n";

        fwrite($socket, $string);
        fclose($socket);
    }

fclose($return);

?>

5 · context

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;
$flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
$context = stream_context_create();

$return = stream_socket_server($local_socket, $errno, $errstr, $flags, $context);

    if (!$return)
    {
        exit("$errstr ($errno)");
    }

    while ($socket = stream_socket_accept($return))
    {
        $string = "local time: " . date('n/j/Y g:i a') . "\n";

        fwrite($socket, $string);
        fclose($socket);
    }

fclose($return);

?>

6 · Return

<?

$transport = "tcp";
$host = "127.0.0.1";
$port = "1234";

$local_socket = $transport . "://" . $host . ":" . $port;

$return = stream_socket_server($local_socket);

    if (!$return)
    {
        exit;
    }

    echo $return;

fclose($return);

?>
Resource id #3
HomeMenu