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

stream_socket_server

Description

The stream_socket_server of Stream for PHP create an Internet or Unix domain server socket.

Syntax

stream_socket_server(
    string $address,
    int &$error_code = null,
    string &$error_message = null,
    int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
    ?resource $context = null
): resource|false

Parameters

address

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.

error_code

If the optional error_code and error_message 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 error_code 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 error_code and error_message arguments will always be passed by reference.

error_message

See error_code 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 · address

<?

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

$address = "$transport://$host:$port";

$return = stream_socket_server($address);

    if(!$return)
    {
        die;
    }

    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 · error_code

<?

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

$address = "$transport://$host:$port";

$return = stream_socket_server($address, $error_code);

    if(!$return)
    {
        die("$error_code");
    }

    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 · error_message

<?

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

$address = "$transport://$host:$port";

$return = stream_socket_server($address, $error_code, $error_message);

    if(!$return)
    {
        die("$error_message($error_code)");
    }

    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 = "5000";

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

$return = stream_socket_server($address, $error_code, $error_message, $flags);

    if(!$return)
    {
        die("$error_message($error_code)");
    }

    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 = "5000";

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

$return = stream_socket_server($address, $error_code, $error_message, $flags, $context);

    if(!$return)
    {
        die("$error_message($error_code)");
    }

    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 = "5000";

$address = "$transport://$host:$port";

$return = stream_socket_server($address);

    if(!$return)
    {
        die;
    }

    echo $return;

fclose($return);

?>
Resource id #3
HomeMenu