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