php_stream_sock_open_host() establishes a connect to the specified
host
and port
. socktype
specifies the connection semantics that should apply to the connection. Values for
socktype
are system dependent, but will usually include (at a minimum)
SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP),
or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum
length (UDP).
persistent
is a flag the controls whether the stream is opened as a persistent
stream. Generally speaking, this parameter will usually be 0.
If not NULL, timeout
specifies a maximum time to allow for the connection to be made.
If the connection attempt takes longer than the timeout value, the connection attempt is aborted and
NULL is returned to indicate that the stream could not be opened.
Note: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.
The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.
The streams API places no restrictions on the values you use for socktype
,
but encourages you to consider the portability of values you choose before you release your
extension.