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

stream_bucket_append

stream_bucket_make_writeable

stream_bucket_new

stream_bucket_prepend

stream_context_create

stream_context_get_default

stream_context_get_options

stream_context_get_params

stream_context_set_default

stream_context_set_option

stream_context_set_params

stream_copy_to_stream

stream_filter_append

stream_filter_prepend

stream_filter_register

stream_filter_remove

stream_get_contents

stream_get_filters

stream_get_line

stream_get_meta_data

stream_get_transports

stream_get_wrappers

stream_is_local

stream_isatty

stream_notification_callback

stream_register_wrapper

stream_resolve_include_path

stream_select

stream_set_blocking

stream_set_chunk_size

stream_set_read_buffer

stream_set_timeout

stream_set_write_buffer

stream_socket_accept

stream_socket_client

stream_socket_enable_crypto

stream_socket_get_name

stream_socket_pair

stream_socket_recvfrom

stream_socket_sendto

stream_socket_shutdown

stream_supports_lock

stream_wrapper_register

stream_wrapper_restore

stream_wrapper_unregister

PHP

Home Menu