/.metadata/.plugins/org.eclipse.php.core/__language__/a601fd1b/sockets.php
PHP | 1370 lines | 129 code | 34 blank | 1207 comment | 0 complexity | ccfc3c436fdb4f6ae3d76d20e9f0920b MD5 | raw file
Possible License(s): CC-BY-3.0, GPL-2.0, Apache-2.0
- <?php
- // Start of sockets v.
- /**
- * Runs the select() system call on the given arrays of sockets with a specified timeout
- * @link http://www.php.net/manual/en/function.socket-select.php
- * @param read array <p>
- * The sockets listed in the read array will be
- * watched to see if characters become available for reading (more
- * precisely, to see if a read will not block - in particular, a socket
- * resource is also ready on end-of-file, in which case a
- * socket_read will return a zero length string).
- * </p>
- * @param write array <p>
- * The sockets listed in the write array will be
- * watched to see if a write will not block.
- * </p>
- * @param except array <p>
- * The sockets listed in the except array will be
- * watched for exceptions.
- * </p>
- * @param tv_sec int <p>
- * The tv_sec and tv_usec
- * together form the timeout parameter. The
- * timeout is an upper bound on the amount of time
- * elapsed before socket_select return.
- * tv_sec may be zero , causing
- * socket_select to return immediately. This is useful
- * for polling. If tv_sec is &null; (no timeout),
- * socket_select can block indefinitely.
- * </p>
- * @param tv_usec int[optional] <p>
- * </p>
- * @return int On success socket_select returns the number of
- * socket resources contained in the modified arrays, which may be zero if
- * the timeout expires before anything interesting happens. On error false
- * is returned. The error code can be retrieved with
- * socket_last_error.
- * </p>
- * <p>
- * Be sure to use the === operator when checking for an
- * error. Since the socket_select may return 0 the
- * comparison with == would evaluate to true:
- * Understanding socket_select's result
- * ]]>
- */
- function socket_select (array &$read, array &$write, array &$except, $tv_sec, $tv_usec = null) {}
- /**
- * Create a socket (endpoint for communication)
- * @link http://www.php.net/manual/en/function.socket-create.php
- * @param domain int <p>
- * The domain parameter specifies the protocol
- * family to be used by the socket.
- * </p>
- * <table>
- * Available address/protocol families
- * <tr valign="top">
- * <td>Domain</td>
- * <td>Description</td>
- * </tr>
- * <tr valign="top">
- * <td>AF_INET</td>
- * <td>
- * IPv4 Internet based protocols. TCP and UDP are common protocols of
- * this protocol family.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>AF_INET6</td>
- * <td>
- * IPv6 Internet based protocols. TCP and UDP are common protocols of
- * this protocol family.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>AF_UNIX</td>
- * <td>
- * Local communication protocol family. High efficiency and low
- * overhead make it a great form of IPC (Interprocess Communication).
- * </td>
- * </tr>
- * </table>
- * @param type int <p>
- * The type parameter selects the type of communication
- * to be used by the socket.
- * </p>
- * <table>
- * Available socket types
- * <tr valign="top">
- * <td>Type</td>
- * <td>Description</td>
- * </tr>
- * <tr valign="top">
- * <td>SOCK_STREAM</td>
- * <td>
- * Provides sequenced, reliable, full-duplex, connection-based byte streams.
- * An out-of-band data transmission mechanism may be supported.
- * The TCP protocol is based on this socket type.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SOCK_DGRAM</td>
- * <td>
- * Supports datagrams (connectionless, unreliable messages of a fixed maximum length).
- * The UDP protocol is based on this socket type.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SOCK_SEQPACKET</td>
- * <td>
- * Provides a sequenced, reliable, two-way connection-based data transmission path for
- * datagrams of fixed maximum length; a consumer is required to read an
- * entire packet with each read call.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SOCK_RAW</td>
- * <td>
- * Provides raw network protocol access. This special type of socket
- * can be used to manually construct any type of protocol. A common use
- * for this socket type is to perform ICMP requests (like ping).
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SOCK_RDM</td>
- * <td>
- * Provides a reliable datagram layer that does not guarantee ordering.
- * This is most likely not implemented on your operating system.
- * </td>
- * </tr>
- * </table>
- * @param protocol int <p>
- * The protocol parameter sets the specific
- * protocol within the specified domain to be used
- * when communicating on the returned socket. The proper value can be
- * retrieved by name by using getprotobyname. If
- * the desired protocol is TCP, or UDP the corresponding constants
- * SOL_TCP, and SOL_UDP
- * can also be used.
- * </p>
- * <table>
- * Common protocols
- * <tr valign="top">
- * <td>Name</td>
- * <td>Description</td>
- * </tr>
- * <tr valign="top">
- * <td>icmp</td>
- * <td>
- * The Internet Control Message Protocol is used primarily by gateways
- * and hosts to report errors in datagram communication. The "ping"
- * command (present in most modern operating systems) is an example
- * application of ICMP.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>udp</td>
- * <td>
- * The User Datagram Protocol is a connectionless, unreliable,
- * protocol with fixed record lengths. Due to these aspects, UDP
- * requires a minimum amount of protocol overhead.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>tcp</td>
- * <td>
- * The Transmission Control Protocol is a reliable, connection based,
- * stream oriented, full duplex protocol. TCP guarantees that all data packets
- * will be received in the order in which they were sent. If any packet is somehow
- * lost during communication, TCP will automatically retransmit the packet until
- * the destination host acknowledges that packet. For reliability and performance
- * reasons, the TCP implementation itself decides the appropriate octet boundaries
- * of the underlying datagram communication layer. Therefore, TCP applications must
- * allow for the possibility of partial record transmission.
- * </td>
- * </tr>
- * </table>
- * @return resource socket_create returns a socket resource on success,
- * or false on error. The actual error code can be retrieved by calling
- * socket_last_error. This error code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- */
- function socket_create ($domain, $type, $protocol) {}
- /**
- * Opens a socket on port to accept connections
- * @link http://www.php.net/manual/en/function.socket-create-listen.php
- * @param port int <p>
- * The port on which to listen on all interfaces.
- * </p>
- * @param backlog int[optional] <p>
- * The backlog parameter defines the maximum length
- * the queue of pending connections may grow to.
- * SOMAXCONN may be passed as
- * backlog parameter, see
- * socket_listen for more information.
- * </p>
- * @return resource socket_create_listen returns a new socket resource
- * on success or false on error. The error code can be retrieved with
- * socket_last_error. This code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- */
- function socket_create_listen ($port, $backlog = null) {}
- /**
- * Creates a pair of indistinguishable sockets and stores them in an array
- * @link http://www.php.net/manual/en/function.socket-create-pair.php
- * @param domain int <p>
- * The domain parameter specifies the protocol
- * family to be used by the socket. See socket_create
- * for the full list.
- * </p>
- * @param type int <p>
- * The type parameter selects the type of communication
- * to be used by the socket. See socket_create for the
- * full list.
- * </p>
- * @param protocol int <p>
- * The protocol parameter sets the specific
- * protocol within the specified domain to be used
- * when communicating on the returned socket. The proper value can be retrieved by
- * name by using getprotobyname. If
- * the desired protocol is TCP, or UDP the corresponding constants
- * SOL_TCP, and SOL_UDP
- * can also be used.
- * </p>
- * <p>
- * See socket_create for the full list of supported
- * protocols.
- * </p>
- * @param fd array <p>
- * Reference to an array in which the two socket resources will be inserted.
- * </p>
- * @return bool Returns true on success or false on failure.
- */
- function socket_create_pair ($domain, $type, $protocol, array &$fd) {}
- /**
- * Accepts a connection on a socket
- * @link http://www.php.net/manual/en/function.socket-accept.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @return resource a new socket resource on success, or false on error. The actual
- * error code can be retrieved by calling
- * socket_last_error. This error code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- */
- function socket_accept ($socket) {}
- /**
- * Sets nonblocking mode for file descriptor fd
- * @link http://www.php.net/manual/en/function.socket-set-nonblock.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @return bool Returns true on success or false on failure.
- */
- function socket_set_nonblock ($socket) {}
- /**
- * Sets blocking mode on a socket resource
- * @link http://www.php.net/manual/en/function.socket-set-block.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @return bool Returns true on success or false on failure.
- */
- function socket_set_block ($socket) {}
- /**
- * Listens for a connection on a socket
- * @link http://www.php.net/manual/en/function.socket-listen.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @param backlog int[optional] <p>
- * A maximum of backlog incoming connections will be
- * queued for processing. If a connection request arrives with the queue
- * full the client may receive an error with an indication of
- * ECONNREFUSED, or, if the underlying protocol supports
- * retransmission, the request may be ignored so that retries may succeed.
- * </p>
- * <p>
- * The maximum number passed to the backlog
- * parameter highly depends on the underlying platform. On Linux, it is
- * silently truncated to SOMAXCONN. On win32, if
- * passed SOMAXCONN, the underlying service provider
- * responsible for the socket will set the backlog to a maximum
- * reasonable value. There is no standard provision to
- * find out the actual backlog value on this platform.
- * </p>
- * @return bool Returns true on success or false on failure. The error code can be retrieved with
- * socket_last_error. This code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- */
- function socket_listen ($socket, $backlog = null) {}
- /**
- * Closes a socket resource
- * @link http://www.php.net/manual/en/function.socket-close.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @return void
- */
- function socket_close ($socket) {}
- /**
- * Write to a socket
- * @link http://www.php.net/manual/en/function.socket-write.php
- * @param socket resource <p>
- * </p>
- * @param buffer string <p>
- * The buffer to be written.
- * </p>
- * @param length int[optional] <p>
- * The optional parameter length can specify an
- * alternate length of bytes written to the socket. If this length is
- * greater than the buffer length, it is silently truncated to the length
- * of the buffer.
- * </p>
- * @return int the number of bytes successfully written to the socket&return.falseforfailure;.
- * The error code can be retrieved with
- * socket_last_error. This code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- * </p>
- * <p>
- * It is perfectly valid for socket_write to
- * return zero which means no bytes have been written. Be sure to use the
- * === operator to check for false in case of an
- * error.
- */
- function socket_write ($socket, $buffer, $length = null) {}
- /**
- * Reads a maximum of length bytes from a socket
- * @link http://www.php.net/manual/en/function.socket-read.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param length int <p>
- * The maximum number of bytes read is specified by the
- * length parameter. Otherwise you can use
- * \r, \n,
- * or \0 to end reading (depending on the type
- * parameter, see below).
- * </p>
- * @param type int[optional] <p>
- * Optional type parameter is a named constant:
- * PHP_BINARY_READ (Default) - use the system
- * recv() function. Safe for reading binary data.
- * @return string socket_read returns the data as a string on success,
- * or false on error (including if the remote host has closed the
- * connection). The error code can be retrieved with
- * socket_last_error. This code may be passed to
- * socket_strerror to get a textual representation of
- * the error.
- * </p>
- * <p>
- * socket_read returns a zero length string ("")
- * when there is no more data to read.
- */
- function socket_read ($socket, $length, $type = null) {}
- /**
- * Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
- * @link http://www.php.net/manual/en/function.socket-getsockname.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param addr string <p>
- * If the given socket is of type AF_INET
- * or AF_INET6, socket_getsockname
- * will return the local IP address in appropriate notation (e.g.
- * 127.0.0.1 or fe80::1) in the
- * address parameter and, if the optional
- * port parameter is present, also the associated port.
- * </p>
- * <p>
- * If the given socket is of type AF_UNIX,
- * socket_getsockname will return the Unix filesystem
- * path (e.g. /var/run/daemon.sock) in the
- * address parameter.
- * </p>
- * @param port int[optional] <p>
- * If provided, this will hold the associated port.
- * </p>
- * @return bool Returns true on success or false on failure. socket_getsockname may also return
- * false if the socket type is not any of AF_INET,
- * AF_INET6, or AF_UNIX, in which
- * case the last socket error code is not updated.
- */
- function socket_getsockname ($socket, &$addr, &$port = null) {}
- /**
- * Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
- * @link http://www.php.net/manual/en/function.socket-getpeername.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param address string <p>
- * If the given socket is of type AF_INET or
- * AF_INET6, socket_getpeername
- * will return the peers (remote) IP address in
- * appropriate notation (e.g. 127.0.0.1 or
- * fe80::1) in the address
- * parameter and, if the optional port parameter is
- * present, also the associated port.
- * </p>
- * <p>
- * If the given socket is of type AF_UNIX,
- * socket_getpeername will return the Unix filesystem
- * path (e.g. /var/run/daemon.sock) in the
- * address parameter.
- * </p>
- * @param port int[optional] <p>
- * If given, this will hold the port associated to
- * address.
- * </p>
- * @return bool Returns true on success or false on failure. socket_getpeername may also return
- * false if the socket type is not any of AF_INET,
- * AF_INET6, or AF_UNIX, in which
- * case the last socket error code is not updated.
- */
- function socket_getpeername ($socket, &$address, &$port = null) {}
- /**
- * Initiates a connection on a socket
- * @link http://www.php.net/manual/en/function.socket-connect.php
- * @param socket resource <p>
- * </p>
- * @param address string <p>
- * The address parameter is either an IPv4 address
- * in dotted-quad notation (e.g. 127.0.0.1) if
- * socket is AF_INET, a valid
- * IPv6 address (e.g. ::1) if IPv6 support is enabled and
- * socket is AF_INET6
- * or the pathname of a Unix domain socket, if the socket family is
- * AF_UNIX.
- * </p>
- * @param port int[optional] <p>
- * The port parameter is only used and is mandatory
- * when connecting to an AF_INET or an
- * AF_INET6 socket, and designates
- * the port on the remote host to which a connection should be made.
- * </p>
- * @return bool Returns true on success or false on failure. The error code can be retrieved with
- * socket_last_error. This code may be passed to
- * socket_strerror to get a textual explanation of the
- * error.
- * </p>
- * <p>
- * If the socket is non-blocking then this function returns false with an
- * error Operation now in progress.
- */
- function socket_connect ($socket, $address, $port = null) {}
- /**
- * Return a string describing a socket error
- * @link http://www.php.net/manual/en/function.socket-strerror.php
- * @param errno int <p>
- * A valid socket error number, likely produced by
- * socket_last_error.
- * </p>
- * @return string the error message associated with the errno
- * parameter.
- */
- function socket_strerror ($errno) {}
- /**
- * Binds a name to a socket
- * @link http://www.php.net/manual/en/function.socket-bind.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @param address string <p>
- * If the socket is of the AF_INET family, the
- * address is an IP in dotted-quad notation
- * (e.g. 127.0.0.1).
- * </p>
- * <p>
- * If the socket is of the AF_UNIX family, the
- * address is the path of a
- * Unix-domain socket (e.g. /tmp/my.sock).
- * </p>
- * @param port int[optional] <p>
- * The port parameter is only used when
- * binding an AF_INET socket, and designates
- * the port on which to listen for connections.
- * </p>
- * @return bool Returns true on success or false on failure.
- * </p>
- * <p>
- * The error code can be retrieved with socket_last_error.
- * This code may be passed to socket_strerror to get a
- * textual explanation of the error.
- */
- function socket_bind ($socket, $address, $port = null) {}
- /**
- * Receives data from a connected socket
- * @link http://www.php.net/manual/en/function.socket-recv.php
- * @param socket resource <p>
- * The socket must be a socket resource previously
- * created by socket_create().
- * </p>
- * @param buf string <p>
- * The data received will be fetched to the variable specified with
- * buf. If an error occurs, if the
- * connection is reset, or if no data is
- * available, buf will be set to &null;.
- * </p>
- * @param len int <p>
- * Up to len bytes will be fetched from remote host.
- * </p>
- * @param flags int <p>
- * The value of flags can be any combination of
- * the following flags, joined with the binary OR (|)
- * operator.
- * </p>
- * <table>
- * Possible values for flags
- * <tr valign="top">
- * <td>Flag</td>
- * <td>Description</td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_OOB</td>
- * <td>
- * Process out-of-band data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_PEEK</td>
- * <td>
- * Receive data from the beginning of the receive queue without
- * removing it from the queue.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_WAITALL</td>
- * <td>
- * Block until at least len are received.
- * However, if a signal is caught or the remote host disconnects, the
- * function may return less data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_DONTWAIT</td>
- * <td>
- * With this flag set, the function returns even if it would normally
- * have blocked.
- * </td>
- * </tr>
- * </table>
- * @return int socket_recv returns the number of bytes received,
- * or false if there was an error. The actual error code can be retrieved by
- * calling socket_last_error. This error code may be
- * passed to socket_strerror to get a textual explanation
- * of the error.
- */
- function socket_recv ($socket, &$buf, $len, $flags) {}
- /**
- * Sends data to a connected socket
- * @link http://www.php.net/manual/en/function.socket-send.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param buf string <p>
- * A buffer containing the data that will be sent to the remote host.
- * </p>
- * @param len int <p>
- * The number of bytes that will be sent to the remote host from
- * buf.
- * </p>
- * @param flags int <p>
- * The value of flags can be any combination of
- * the following flags, joined with the binary OR (|)
- * operator.
- * <table>
- * Possible values for flags
- * <tr valign="top">
- * <td>MSG_OOB</td>
- * <td>
- * Send OOB (out-of-band) data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_EOR</td>
- * <td>
- * Indicate a record mark. The sent data completes the record.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_EOF</td>
- * <td>
- * Close the sender side of the socket and include an appropriate
- * notification of this at the end of the sent data. The sent data
- * completes the transaction.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_DONTROUTE</td>
- * <td>
- * Bypass routing, use direct interface.
- * </td>
- * </tr>
- * </table>
- * </p>
- * @return int socket_send returns the number of bytes sent, or false on error.
- */
- function socket_send ($socket, $buf, $len, $flags) {}
- /**
- * Receives data from a socket whether or not it is connection-oriented
- * @link http://www.php.net/manual/en/function.socket-recvfrom.php
- * @param socket resource <p>
- * The socket must be a socket resource previously
- * created by socket_create().
- * </p>
- * @param buf string <p>
- * The data received will be fetched to the variable specified with
- * buf.
- * </p>
- * @param len int <p>
- * Up to len bytes will be fetched from remote host.
- * </p>
- * @param flags int <p>
- * The value of flags can be any combination of
- * the following flags, joined with the binary OR (|)
- * operator.
- * </p>
- * <table>
- * Possible values for flags
- * <tr valign="top">
- * <td>Flag</td>
- * <td>Description</td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_OOB</td>
- * <td>
- * Process out-of-band data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_PEEK</td>
- * <td>
- * Receive data from the beginning of the receive queue without
- * removing it from the queue.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_WAITALL</td>
- * <td>
- * Block until at least len are received.
- * However, if a signal is caught or the remote host disconnects, the
- * function may return less data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_DONTWAIT</td>
- * <td>
- * With this flag set, the function returns even if it would normally
- * have blocked.
- * </td>
- * </tr>
- * </table>
- * @param name string <p>
- * If the socket is of the type AF_UNIX type,
- * name is the path to the file. Else, for
- * unconnected sockets, name is the IP address of,
- * the remote host, or &null; if the socket is connection-oriented.
- * </p>
- * @param port int[optional] <p>
- * This argument only applies to AF_INET and
- * AF_INET6 sockets, and specifies the remote port
- * from which the data is received. If the socket is connection-oriented,
- * port will be &null;.
- * </p>
- * @return int socket_recvfrom returns the number of bytes received,
- * or false if there was an error. The actual error code can be retrieved by
- * calling socket_last_error. This error code may be
- * passed to socket_strerror to get a textual explanation
- * of the error.
- */
- function socket_recvfrom ($socket, &$buf, $len, $flags, &$name, &$port = null) {}
- /**
- * Sends a message to a socket, whether it is connected or not
- * @link http://www.php.net/manual/en/function.socket-sendto.php
- * @param socket resource <p>
- * A valid socket resource created using socket_create.
- * </p>
- * @param buf string <p>
- * The sent data will be taken from buffer buf.
- * </p>
- * @param len int <p>
- * len bytes from buf will be
- * sent.
- * </p>
- * @param flags int <p>
- * The value of flags can be any combination of
- * the following flags, joined with the binary OR (|)
- * operator.
- * <table>
- * Possible values for flags
- * <tr valign="top">
- * <td>MSG_OOB</td>
- * <td>
- * Send OOB (out-of-band) data.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_EOR</td>
- * <td>
- * Indicate a record mark. The sent data completes the record.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_EOF</td>
- * <td>
- * Close the sender side of the socket and include an appropriate
- * notification of this at the end of the sent data. The sent data
- * completes the transaction.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MSG_DONTROUTE</td>
- * <td>
- * Bypass routing, use direct interface.
- * </td>
- * </tr>
- * </table>
- * </p>
- * @param addr string <p>
- * IP address of the remote host.
- * </p>
- * @param port int[optional] <p>
- * port is the remote port number at which the data
- * will be sent.
- * </p>
- * @return int socket_sendto returns the number of bytes sent to the
- * remote host, or false if an error occurred.
- */
- function socket_sendto ($socket, $buf, $len, $flags, $addr, $port = null) {}
- /**
- * Gets socket options for the socket
- * @link http://www.php.net/manual/en/function.socket-get-option.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param level int <p>
- * The level parameter specifies the protocol
- * level at which the option resides. For example, to retrieve options at
- * the socket level, a level parameter of
- * SOL_SOCKET would be used. Other levels, such as
- * TCP, can be used by
- * specifying the protocol number of that level. Protocol numbers can be
- * found by using the getprotobyname function.
- * </p>
- * @param optname int <table>
- * Available Socket Options
- * <tr valign="top">
- * <td>Option</td>
- * <td>Description</td>
- * <td>Type</td>
- * </tr>
- * <tr valign="top">
- * <td>SO_DEBUG</td>
- * <td>
- * Reports whether debugging information is being recorded.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_BROADCAST</td>
- * <td>
- * Reports whether transmission of broadcast messages is supported.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_REUSEADDR</td>
- * <td>
- * Reports whether local addresses can be reused.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_KEEPALIVE</td>
- * <td>
- * Reports whether connections are kept active with periodic transmission
- * of messages. If the connected socket fails to respond to these messages,
- * the connection is broken and processes writing to that socket are notified
- * with a SIGPIPE signal.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_LINGER</td>
- * <td>
- * <p>
- * Reports whether the socket lingers on
- * socket_close if data is present. By default,
- * when the socket is closed, it attempts to send all unsent data.
- * In the case of a connection-oriented socket,
- * socket_close will wait for its peer to
- * acknowledge the data.
- * </p>
- * <p>
- * If l_onoff is non-zero and
- * l_linger is zero, all the
- * unsent data will be discarded and RST (reset) is sent to the
- * peer in the case of a connection-oriented socket.
- * </p>
- * <p>
- * On the other hand, if l_onoff is
- * non-zero and l_linger is non-zero,
- * socket_close will block until all the data
- * is sent or the time specified in l_linger
- * elapses. If the socket is non-blocking,
- * socket_close will fail and return an error.
- * </p>
- * </td>
- * <td>
- * array. The array will contain two keys:
- * l_onoff and
- * l_linger.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_OOBINLINE</td>
- * <td>
- * Reports whether the socket leaves out-of-band data inline.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_SNDBUF</td>
- * <td>
- * Reports the size of the send buffer.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_RCVBUF</td>
- * <td>
- * Reports the size of the receive buffer.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_ERROR</td>
- * <td>
- * Reports information about error status and clears it.
- * </td>
- * <td>
- * int (cannot be set by socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_TYPE</td>
- * <td>
- * Reports the socket type (e.g.
- * SOCK_STREAM).
- * </td>
- * <td>
- * int (cannot be set by socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_DONTROUTE</td>
- * <td>
- * Reports whether outgoing messages bypass the standard routing facilities.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_RCVLOWAT</td>
- * <td>
- * Reports the minimum number of bytes to process for socket
- * input operations.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_RCVTIMEO</td>
- * <td>
- * Reports the timeout value for input operations.
- * </td>
- * <td>
- * array. The array will contain two keys:
- * sec which is the seconds part on the timeout
- * value and usec which is the microsecond part
- * of the timeout value.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_SNDTIMEO</td>
- * <td>
- * Reports the timeout value specifying the amount of time that an output
- * function blocks because flow control prevents data from being sent.
- * </td>
- * <td>
- * array. The array will contain two keys:
- * sec which is the seconds part on the timeout
- * value and usec which is the microsecond part
- * of the timeout value.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>SO_SNDLOWAT</td>
- * <td>
- * Reports the minimum number of bytes to process for socket output operations.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>TCP_NODELAY</td>
- * <td>
- * Reports whether the Nagle TCP algorithm is disabled.
- * </td>
- * <td>
- * int
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_JOIN_GROUP</td>
- * <td>
- * Joins a multicast group. (added in PHP 5.4)
- * </td>
- * <td>
- * array with keys "group", specifying
- * a string with an IPv4 or IPv6 multicast address and
- * "interface", specifying either an interface
- * number (type int) or a string with
- * the interface name, like "eth0".
- * 0 can be specified to indicate the interface
- * should be selected using routing rules. (can only be used in
- * socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_LEAVE_GROUP</td>
- * <td>
- * Leaves a multicast group. (added in PHP 5.4)
- * </td>
- * <td>
- * array. See MCAST_JOIN_GROUP for
- * more information. (can only be used in
- * socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_BLOCK_SOURCE</td>
- * <td>
- * Blocks packets arriving from a specific source to a specific
- * multicast group, which must have been previously joined.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * array with the same keys as
- * MCAST_JOIN_GROUP, plus one extra key,
- * source, which maps to a string
- * specifying an IPv4 or IPv6 address of the source to be blocked.
- * (can only be used in socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_UNBLOCK_SOURCE</td>
- * <td>
- * Unblocks (start receiving again) packets arriving from a specific
- * source address to a specific multicast group, which must have been
- * previously joined. (added in PHP 5.4)
- * </td>
- * <td>
- * array with the same format as
- * MCAST_BLOCK_SOURCE.
- * (can only be used in socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_JOIN_SOURCE_GROUP</td>
- * <td>
- * Receive packets destined to a specific multicast group whose source
- * address matches a specific value. (added in PHP 5.4)
- * </td>
- * <td>
- * array with the same format as
- * MCAST_BLOCK_SOURCE.
- * (can only be used in socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>MCAST_LEAVE_SOURCE_GROUP</td>
- * <td>
- * Stop receiving packets destined to a specific multicast group whose
- * soure address matches a specific value. (added in PHP 5.4)
- * </td>
- * <td>
- * array with the same format as
- * MCAST_BLOCK_SOURCE.
- * (can only be used in socket_set_option)
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IP_MULTICAST_IF</td>
- * <td>
- * The outgoing interface for IPv4 multicast packets.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * Either int specifying the interface number or a
- * string with an interface name, like
- * eth0. The value 0 can be used to
- * indicate the routing table is to used in the interface selection.
- * The function socket_get_option returns an
- * interface index.
- * Note that, unlike the C API, this option does NOT take an IP
- * address. This eliminates the interface difference between
- * IP_MULTICAST_IF and
- * IPV6_MULTICAST_IF.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IPV6_MULTICAST_IF</td>
- * <td>
- * The outgoing interface for IPv6 multicast packets.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * The same as IP_MULTICAST_IF.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IP_MULTICAST_LOOP</td>
- * <td>
- * The multicast loopback policy for IPv4 packets, which
- * determines whether multicast packets sent by this socket also reach
- * receivers in the same host that have joined the same multicast group
- * on the outgoing interface used by this socket. This is the case by
- * default.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * int (either 0 or
- * 1). For socket_set_option
- * any value will be accepted and will be converted to a boolean
- * following the usual PHP rules.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IPV6_MULTICAST_LOOP</td>
- * <td>
- * Analogous to IP_MULTICAST_LOOP, but for IPv6.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * int. See IP_MULTICAST_LOOP.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IP_MULTICAST_TTL</td>
- * <td>
- * The time-to-live of outgoing IPv4 multicast packets. This should be
- * a value between 0 (don't leave the interface) and 255. The default
- * value is 1 (only the local network is reached).
- * (added in PHP 5.4)
- * </td>
- * <td>
- * int between 0 and 255.
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>IPV6_MULTICAST_HOPS</td>
- * <td>
- * Analogous to IP_MULTICAST_TTL, but for IPv6
- * packets. The value -1 is also accepted, meaning the route default
- * should be used.
- * (added in PHP 5.4)
- * </td>
- * <td>
- * int between -1 and 255.
- * </td>
- * </tr>
- * </table>
- * @return mixed the value of the given option, or false on errors.
- */
- function socket_get_option ($socket, $level, $optname) {}
- /**
- * Sets socket options for the socket
- * @link http://www.php.net/manual/en/function.socket-set-option.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create
- * or socket_accept.
- * </p>
- * @param level int <p>
- * The level parameter specifies the protocol
- * level at which the option resides. For example, to retrieve options at
- * the socket level, a level parameter of
- * SOL_SOCKET would be used. Other levels, such as
- * TCP, can be used by specifying the protocol number of that level.
- * Protocol numbers can be found by using the
- * getprotobyname function.
- * </p>
- * @param optname int <p>
- * The available socket options are the same as those for the
- * socket_get_option function.
- * </p>
- * @param optval mixed <p>
- * The option value.
- * </p>
- * @return bool Returns true on success or false on failure.
- */
- function socket_set_option ($socket, $level, $optname, $optval) {}
- /**
- * Shuts down a socket for receiving, sending, or both
- * @link http://www.php.net/manual/en/function.socket-shutdown.php
- * @param socket resource <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @param how int[optional] <p>
- * The value of how can be one of the following:
- * <table>
- * possible values for how
- * <tr valign="top">
- * <td>0</td>
- * <td>
- * Shutdown socket reading
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>1</td>
- * <td>
- * Shutdown socket writing
- * </td>
- * </tr>
- * <tr valign="top">
- * <td>2</td>
- * <td>
- * Shutdown socket reading and writing
- * </td>
- * </tr>
- * </table>
- * </p>
- * @return bool Returns true on success or false on failure.
- */
- function socket_shutdown ($socket, $how = null) {}
- /**
- * Returns the last error on the socket
- * @link http://www.php.net/manual/en/function.socket-last-error.php
- * @param socket resource[optional] <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @return int This function returns a socket error code.
- */
- function socket_last_error ($socket = null) {}
- /**
- * Clears the error on the socket or the last error code
- * @link http://www.php.net/manual/en/function.socket-clear-error.php
- * @param socket resource[optional] <p>
- * A valid socket resource created with socket_create.
- * </p>
- * @return void
- */
- function socket_clear_error ($socket = null) {}
- /**
- * Import a stream
- * @link http://www.php.net/manual/en/function.socket-import-stream.php
- * @param stream resource <p>
- * The stream resource to import.
- * </p>
- * @return resource false or &null; on failure.
- */
- function socket_import_stream ($stream) {}
- /**
- * Send a message
- * @link http://www.php.net/manual/en/function.socket-sendmsg.php
- * @param socket resource <p>
- * </p>
- * @param message array <p>
- * </p>
- * @param flags int <p>
- * </p>
- * @return int
- */
- function socket_sendmsg ($socket, array $message, $flags) {}
- /**
- * Read a message
- * @link http://www.php.net/manual/en/function.socket-recvmsg.php
- * @param socket resource <p>
- * </p>
- * @param message string <p>
- * </p>
- * @param flags int[optional] <p>
- * </p>
- * @return int
- */
- function socket_recvmsg ($socket, $message, $flags = null) {}
- /**
- * Calculate message buffer size
- * @link http://www.php.net/manual/en/function.socket-cmsg-space.php
- * @param level int <p>
- * </p>
- * @param type int <p>
- * </p>
- * @return int
- */
- function socket_cmsg_space ($level, $type) {}
- /**
- * @param socket
- * @param level
- * @param optname
- */
- function socket_getopt ($socket, $level, $optname) {}
- /**
- * @param socket
- * @param level
- * @param optname
- * @param optval
- */
- function socket_setopt ($socket, $level, $optname, $optval) {}
- define ('AF_UNIX', 1);
- define ('AF_INET', 2);
- define ('SOCK_STREAM', 1);
- define ('SOCK_DGRAM', 2);
- define ('SOCK_RAW', 3);
- define ('SOCK_SEQPACKET', 5);
- define ('SOCK_RDM', 4);
- define ('MSG_OOB', 1);
- define ('MSG_WAITALL', 8);
- define ('MSG_CTRUNC', 512);
- define ('MSG_TRUNC', 256);
- define ('MSG_PEEK', 2);
- define ('MSG_DONTROUTE', 4);
- define ('SO_DEBUG', 1);
- define ('SO_REUSEADDR', 4);
- define ('SO_KEEPALIVE', 8);
- define ('SO_DONTROUTE', 16);
- define ('SO_LINGER', 128);
- define ('SO_BROADCAST', 32);
- define ('SO_OOBINLINE', 256);
- define ('SO_SNDBUF', 4097);
- define ('SO_RCVBUF', 4098);
- define ('SO_SNDLOWAT', 4099);
- define ('SO_RCVLOWAT', 4100);
- define ('SO_SNDTIMEO', 4101);
- define ('SO_RCVTIMEO', 4102);
- define ('SO_TYPE', 4104);
- define ('SO_ERROR', 4103);
- define ('SOL_SOCKET', 65535);
- define ('SOMAXCONN', 2147483647);
- define ('TCP_NODELAY', 1);
- define ('PHP_NORMAL_READ', 1);
- define ('PHP_BINARY_READ', 2);
- define ('MCAST_JOIN_GROUP', 41);
- define ('MCAST_LEAVE_GROUP', 42);
- define ('MCAST_BLOCK_SOURCE', 43);
- define ('MCAST_UNBLOCK_SOURCE', 44);
- define ('MCAST_JOIN_SOURCE_GROUP', 45);
- define ('MCAST_LEAVE_SOURCE_GROUP', 46);
- define ('IP_MULTICAST_IF', 9);
- define ('IP_MULTICAST_TTL', 10);
- define ('IP_MULTICAST_LOOP', 11);
- define ('SOCKET_EINTR', 10004);
- define ('SOCKET_EBADF', 10009);
- define ('SOCKET_EACCES', 10013);
- define ('SOCKET_EFAULT', 10014);
- define ('SOCKET_EINVAL', 10022);
- define ('SOCKET_EMFILE', 10024);
- define ('SOCKET_EWOULDBLOCK', 10035);
- define ('SOCKET_EINPROGRESS', 10036);
- define ('SOCKET_EALREADY', 10037);
- define ('SOCKET_ENOTSOCK', 10038);
- define ('SOCKET_EDESTADDRREQ', 10039);
- define ('SOCKET_EMSGSIZE', 10040);
- define ('SOCKET_EPROTOTYPE', 10041);
- define ('SOCKET_ENOPROTOOPT', 10042);
- define ('SOCKET_EPROTONOSUPPORT', 10043);
- define ('SOCKET_ESOCKTNOSUPPORT', 10044);
- define ('SOCKET_EOPNOTSUPP', 10045);
- define ('SOCKET_EPFNOSUPPORT', 10046);
- define ('SOCKET_EAFNOSUPPORT', 10047);
- define ('SOCKET_EADDRINUSE', 10048);
- define ('SOCKET_EADDRNOTAVAIL', 10049);
- define ('SOCKET_ENETDOWN', 10050);
- define ('SOCKET_ENETUNREACH', 10051);
- define ('SOCKET_ENETRESET', 10052);
- define ('SOCKET_ECONNABORTED', 10053);
- define ('SOCKET_ECONNRESET', 10054);
- define ('SOCKET_ENOBUFS', 10055);
- define ('SOCKET_EISCONN', 10056);
- define ('SOCKET_ENOTCONN', 10057);
- define ('SOCKET_ESHUTDOWN', 10058);
- define ('SOCKET_ETOOMANYREFS', 10059);
- define ('SOCKET_ETIMEDOUT', 10060);
- define ('SOCKET_ECONNREFUSED', 10061);
- define ('SOCKET_ELOOP', 10062);
- define ('SOCKET_ENAMETOOLONG', 10063);
- define ('SOCKET_EHOSTDOWN', 10064);
- define ('SOCKET_EHOSTUNREACH', 10065);
- define ('SOCKET_ENOTEMPTY', 10066);
- define ('SOCKET_EPROCLIM', 10067);
- define ('SOCKET_EUSERS', 10068);
- define ('SOCKET_EDQUOT', 10069);
- define ('SOCKET_ESTALE', 10070);
- define ('SOCKET_EREMOTE', 10071);
- define ('SOCKET_EDISCON', 10101);
- define ('SOCKET_SYSNOTREADY', 10091);
- define ('SOCKET_VERNOTSUPPORTED', 10092);
- define ('SOCKET_NOTINITIALISED', 10093);
- define ('SOCKET_HOST_NOT_FOUND', 11001);
- define ('SOCKET_TRY_AGAIN', 11002);
- define ('SOCKET_NO_RECOVERY', 11003);
- define ('SOCKET_NO_DATA', 11004);
- define ('SOCKET_NO_ADDRESS', 11004);
- define ('IPPROTO_IP', 0);
- define ('SOL_TCP', 6);
- define ('SOL_UDP', 17);
- // End of sockets v.