stream_socket_server
Description
The stream_socket_server of Stream for PHP creates 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|falseParameters
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'). PHP_EOL;
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'). PHP_EOL;
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'). PHP_EOL;
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'). PHP_EOL;
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'). PHP_EOL;
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
Links
Stream
- 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_options
- 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