stream_socket_server
Create an Internet or Unix domain server socket
Descriptionresourcestream_socket_serverstringlocal_socketint&errnostring&errstrintflagsresourcecontext
Creates a stream or datagram socket on the specified
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.
flags is 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.
This function only creates a socket, to begin accepting connections
use stream_socket_accept.
If the call fails, it will return &false; and 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.
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.
stream_socket_server.
stream_socket_server Example
\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fputs ($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
\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, date("D M j H:i:s Y\r\n"));
fclose($conn);
}
fclose($socket);
}
?>
]]>
&ipv6.brackets;
See also stream_socket_client,
stream_set_blocking,
stream_set_timeout,
fgets,
fgetss, fputs,
fclose, feof, and
the Curl extension.