stream_socket_serverCreate an Internet or Unix domain server socket
&reftitle.description;
resourcestream_socket_serverstringlocal_socketinterrnostringerrstrintflagsSTREAM_SERVER_BIND | STREAM_SERVER_LISTENresourcecontext
Creates a stream or datagram socket on the specified
local_socket.
This function only creates a socket, to begin accepting connections
use stream_socket_accept.
&reftitle.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
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. The default value of flags is STREAM_SERVER_BIND
| STREAM_SERVER_LISTEN.
For UDP sockets, you must use STREAM_SERVER_BIND as
the flags parameter.
context
&reftitle.returnvalues;
Returns the created stream, or &false; on error.
&reftitle.examples;
Using TCP server sockets
\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
]]>
The example below shows how to act as a time server which can respond
to time queries as shown in an example on stream_socket_client.
Most systems require root access to create a server socket on a port
below 1024.
Using UDP server sockets
]]>
&reftitle.notes;
&ipv6.brackets;
&reftitle.seealso;
stream_socket_clientstream_set_blockingstream_set_timeoutfgetsfgetssfwritefclosefeofCurl extension