Predefined Constants
The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.
-
AF_UNIX
(integer) -
AF_INET
(integer) -
AF_INET6
(integer) - Only available if compiled with IPv6 support.
-
SOCK_STREAM
(integer) -
SOCK_DGRAM
(integer) -
SOCK_RAW
(integer) -
SOCK_SEQPACKET
(integer) -
SOCK_RDM
(integer) -
MSG_OOB
(integer) -
MSG_WAITALL
(integer) -
MSG_PEEK
(integer) -
MSG_DONTROUTE
(integer) -
MSG_EOR
(integer) - Not available on Windows platforms.
-
MSG_EOF
(integer) - Not available on Windows platforms.
-
SO_DEBUG
(integer) -
SO_REUSEADDR
(integer) -
SO_REUSEPORT
(integer) -
This constant is only available in PHP 5.4.10 or later on platforms that
support the
SO_REUSEPORT
socket option: this includes Mac OS X and FreeBSD, but does not include Linux or Windows. -
SO_KEEPALIVE
(integer) -
SO_DONTROUTE
(integer) -
SO_LINGER
(integer) -
SO_BROADCAST
(integer) -
SO_OOBINLINE
(integer) -
SO_SNDBUF
(integer) -
SO_RCVBUF
(integer) -
SO_SNDLOWAT
(integer) -
SO_RCVLOWAT
(integer) -
SO_SNDTIMEO
(integer) -
SO_RCVTIMEO
(integer) -
SO_TYPE
(integer) -
SO_ERROR
(integer) -
TCP_NODELAY
(integer) - Used to disable Nagle TCP algorithm. Added in PHP 5.2.7.
-
SOL_SOCKET
(integer) -
PHP_NORMAL_READ
(integer) -
PHP_BINARY_READ
(integer) -
SOL_TCP
(integer) -
SOL_UDP
(integer)
The following constants are defined under Windows and UNIX-like platforms. Each constant is only defined if their equal is available on the platform.
-
SOCKET_EINTR
(integer) - Interrupted system call.
-
SOCKET_EBADF
(integer) - Bad file number.
-
SOCKET_EACCES
(integer) - Permission denied.
-
SOCKET_EFAULT
(integer) - Bad address.
-
SOCKET_EINVAL
(integer) - Invalid argument.
-
SOCKET_EMFILE
(integer) - Too many open files.
-
SOCKET_ENAMETOOLONG
(integer) - File name too long.
-
SOCKET_ENOTEMPTY
(integer) - Directory not empty.
-
SOCKET_ELOOP
(integer) - Too many symbolic links encountered.
-
SOCKET_EWOULDBLOCK
(integer) - Operation would block.
-
SOCKET_EREMOTE
(integer) - Object is remote.
-
SOCKET_EUSERS
(integer) - Too many users.
-
SOCKET_ENOTSOCK
(integer) - Socket operation on non-socket.
-
SOCKET_EDESTADDRREQ
(integer) - Destination address required.
-
SOCKET_EMSGSIZE
(integer) - Message too long.
-
SOCKET_EPROTOTYPE
(integer) - Protocol wrong type for socket.
-
SOCKET_EPROTONOSUPPORT
(integer) - Protocol not supported.
-
SOCKET_ESOCKTNOSUPPORT
(integer) - Socket type not supported.
-
SOCKET_EOPNOTSUPP
(integer) - Operation not supported on transport endpoint.
-
SOCKET_EPFNOSUPPORT
(integer) - Protocol family not supported.
-
SOCKET_EAFNOSUPPORT
(integer) - Address family not supported by protocol.
-
SOCKET_EADDRNOTAVAIL
(integer) - Cannot assign requested address.
-
SOCKET_ENETDOWN
(integer) - Network is down.
-
SOCKET_ENETUNREACH
(integer) - Network is unreachable.
-
SOCKET_ENETRESET
(integer) - Network dropped connection because of reset.
-
SOCKET_ECONNABORTED
(integer) - Software caused connection abort.
-
SOCKET_ECONNRESET
(integer) - Connection reset by peer.
-
SOCKET_ENOBUFS
(integer) - No buffer space available.
-
SOCKET_EISCONN
(integer) - Transport endpoint is already connected.
-
SOCKET_ENOTCONN
(integer) - Transport endpoint is not connected.
-
SOCKET_ESHUTDOWN
(integer) - Cannot send after transport endpoint shutdown.
-
SOCKET_ETIMEDOUT
(integer) - Connection timed out.
-
SOCKET_ECONNREFUSED
(integer) - Connection refused.
-
SOCKET_EHOSTDOWN
(integer) - Host is down.
-
SOCKET_EHOSTUNREACH
(integer) - No route to host.
-
SOCKET_EALREADY
(integer) - Operation already in progress.
-
SOCKET_EINPROGRESS
(integer) - Operation now in progress.
The following constants are only defined under Windows.
-
SOCKET_ENOPROTOOPT
(integer) -
SOCKET_EADDRINUSE
(integer) -
SOCKET_ETOOMYREFS
(integer) -
SOCKET_EPROCLIM
(integer) -
SOCKET_EDUOT
(integer) -
SOCKET_ESTALE
(integer) -
SOCKET_EDISCON
(integer) -
SOCKET_SYSNOTREADY
(integer) -
SOCKET_VERNOTSUPPORTED
(integer) -
SOCKET_NOTINITIALISED
(integer) -
SOCKET_HOST_NOT_FOUND
(integer) -
SOCKET_TRY_AGAIN
(integer) -
SOCKET_NO_RECOVERY
(integer) -
SOCKET_NO_DATA
(integer) -
SOCKET_NO_ADDRESS
(integer)
The following constants are only available on UNIX-like platforms. Each constant is only defined if their equal is available on the platform.
-
SOCKET_EPERM
(integer) - Operation not permitted.
-
SOCKET_ENOENT
(integer) - No such file or directory.
-
SOCKET_EIO
(integer) - I/O error.
-
SOCKET_ENXIO
(integer) - No such device or address.
-
SOCKET_E2BIG
(integer) - Arg list too long.
-
SOCKET_EAGAIN
(integer) - Try again.
-
SOCKET_ENOMEM
(integer) - Out of memory.
-
SOCKET_ENOTBLK
(integer) - Block device required.
-
SOCKET_EBUSY
(integer) - Device or resource busy.
-
SOCKET_EEXIST
(integer) - File exists.
-
SOCKET_EXDEV
(integer) - Cross-device link.
-
SOCKET_ENODEV
(integer) - No such device.
-
SOCKET_ENOTDIR
(integer) - Not a directory.
-
SOCKET_EISDIR
(integer) - Is a directory.
-
SOCKET_ENFILE
(integer) - File table overflow.
-
SOCKET_ENOTTY
(integer) - Not a typewriter.
-
SOCKET_ENOSPC
(integer) - No space left on device.
-
SOCKET_ESPIPE
(integer) - Illegal seek.
-
SOCKET_EROFS
(integer) - Read-only file system.
-
SOCKET_EMLINK
(integer) - Too many links.
-
SOCKET_EPIPE
(integer) - Broken pipe.
-
SOCKET_ENOLCK
(integer) - No record locks available.
-
SOCKET_ENOSYS
(integer) - Function not implemented.
-
SOCKET_ENOMSG
(integer) - No message of desired type.
-
SOCKET_EIDRM
(integer) - Identifier removed.
-
SOCKET_ECHRNG
(integer) - Channel number out of range.
-
SOCKET_EL2NSYNC
(integer) - Level 2 not synchronized.
-
SOCKET_EL3HLT
(integer) - Level 3 halted.
-
SOCKET_EL3RST
(integer) - Level 3 reset.
-
SOCKET_ELNRNG
(integer) - Link number out of range.
-
SOCKET_EUNATCH
(integer) - Protocol driver not attached.
-
SOCKET_ENOCSI
(integer) - No CSI structure available.
-
SOCKET_EL2HLT
(integer) - Level 2 halted.
-
SOCKET_EBADE
(integer) - Invalid exchange.
-
SOCKET_EBADR
(integer) - Invalid request descriptor.
-
SOCKET_EXFULL
(integer) - Exchange full.
-
SOCKET_ENOANO
(integer) - No anode.
-
SOCKET_EBADRQC
(integer) - Invalid request code.
-
SOCKET_EBADSLT
(integer) - Invalid slot.
-
SOCKET_ENOSTR
(integer) - Device not a stream.
-
SOCKET_ENODATA
(integer) - No data available.
-
SOCKET_ETIME
(integer) - Timer expired.
-
SOCKET_ENOSR
(integer) - Out of streams resources.
-
SOCKET_ENONET
(integer) - Machine is not on the network.
-
SOCKET_ENOLINK
(integer) - Link has been severed.
-
SOCKET_EADV
(integer) - Advertise error.
-
SOCKET_ESRMNT
(integer) - Srmount error.
-
SOCKET_ECOMM
(integer) - Communication error on send.
-
SOCKET_EPROTO
(integer) - Protocol error.
-
SOCKET_EMULTIHOP
(integer) - Multihop attempted.
-
SOCKET_EBADMSG
(integer) - Not a data message.
-
SOCKET_ENOTUNIQ
(integer) - Name not unique on network.
-
SOCKET_EBADFD
(integer) - File descriptor in bad state.
-
SOCKET_EREMCHG
(integer) - Remote address changed.
-
SOCKET_ERESTART
(integer) - Interrupted system call should be restarted.
-
SOCKET_ESTRPIPE
(integer) - Streams pipe error.
-
SOCKET_EPROTOOPT
(integer) - Protocol not available.
-
SOCKET_ADDRINUSE
(integer) - Address already in use.
-
SOCKET_ETOOMANYREFS
(integer) - Too many references: cannot splice.
-
SOCKET_EISNAM
(integer) - Is a named type file.
-
SOCKET_EREMOTEIO
(integer) - Remote I/O error.
-
SOCKET_EDQUOT
(integer) - Quota exceeded.
-
SOCKET_ENOMEDIUM
(integer) - No medium found.
-
SOCKET_EMEDIUMTYPE
(integer) - Wrong medium type.
Коментарии
We can know sockets constants values with :
<?php
$a = get_defined_constants(TRUE) ;
foreach ( $a['sockets'] as $constant => $value ) {
printf("%-25s %d\r\n", $constant, $value) ;
}
?>
AF_UNIX 1
AF_INET 2
AF_INET6 23
SOCK_STREAM 1
SOCK_DGRAM 2
SOCK_RAW 3
SOCK_SEQPACKET 5
SOCK_RDM 4
MSG_OOB 1
MSG_WAITALL 0
MSG_PEEK 2
MSG_DONTROUTE 4
SO_DEBUG 1
SO_REUSEADDR 4
SO_KEEPALIVE 8
SO_DONTROUTE 16
SO_LINGER 128
SO_BROADCAST 32
SO_OOBINLINE 256
SO_SNDBUF 4097
SO_RCVBUF 4098
SO_SNDLOWAT 4099
SO_RCVLOWAT 4100
SO_SNDTIMEO 4101
SO_RCVTIMEO 4102
SO_TYPE 4104
SO_ERROR 4103
SOL_SOCKET 65535
SOMAXCONN 2147483647
TCP_NODELAY 1
PHP_NORMAL_READ 1
PHP_BINARY_READ 2
SOCKET_EINTR 10004
SOCKET_EBADF 10009
SOCKET_EACCES 10013
SOCKET_EFAULT 10014
SOCKET_EINVAL 10022
SOCKET_EMFILE 10024
SOCKET_EWOULDBLOCK 10035
SOCKET_EINPROGRESS 10036
SOCKET_EALREADY 10037
SOCKET_ENOTSOCK 10038
SOCKET_EDESTADDRREQ 10039
SOCKET_EMSGSIZE 10040
SOCKET_EPROTOTYPE 10041
SOCKET_ENOPROTOOPT 10042
SOCKET_EPROTONOSUPPORT 10043
SOCKET_ESOCKTNOSUPPORT 10044
SOCKET_EOPNOTSUPP 10045
SOCKET_EPFNOSUPPORT 10046
SOCKET_EAFNOSUPPORT 10047
SOCKET_EADDRINUSE 10048
SOCKET_EADDRNOTAVAIL 10049
SOCKET_ENETDOWN 10050
SOCKET_ENETUNREACH 10051
SOCKET_ENETRESET 10052
SOCKET_ECONNABORTED 10053
SOCKET_ECONNRESET 10054
SOCKET_ENOBUFS 10055
SOCKET_EISCONN 10056
SOCKET_ENOTCONN 10057
SOCKET_ESHUTDOWN 10058
SOCKET_ETOOMANYREFS 10059
SOCKET_ETIMEDOUT 10060
SOCKET_ECONNREFUSED 10061
SOCKET_ELOOP 10062
SOCKET_ENAMETOOLONG 10063
SOCKET_EHOSTDOWN 10064
SOCKET_EHOSTUNREACH 10065
SOCKET_ENOTEMPTY 10066
SOCKET_EPROCLIM 10067
SOCKET_EUSERS 10068
SOCKET_EDQUOT 10069
SOCKET_ESTALE 10070
SOCKET_EREMOTE 10071
SOCKET_EDISCON 10101
SOCKET_SYSNOTREADY 10091
SOCKET_VERNOTSUPPORTED 10092
SOCKET_NOTINITIALISED 10093
SOCKET_HOST_NOT_FOUND 11001
SOCKET_TRY_AGAIN 11002
SOCKET_NO_RECOVERY 11003
SOCKET_NO_DATA 11004
SOCKET_NO_ADDRESS 11004
SOL_TCP 6
SOL_UDP 17
$a = get_defined_constants(TRUE);
foreach ($a as $k => $v) {
printf('%-25s <br/>', $k);
foreach ($v as $k => $v) {
printf('  --->%-25s %d<br/>', $k, $v);
}
}
this may look duplicate for previous anonymous post but that code snippet only return 1 for constants value
1-->first called the get_defined_constants by passing argument true to categorize the data
2-->then using foreach iterate over index of the array
3-->here printf is used to print title of the category
4-->then it move on to interrior array and display the list of contants available in each category along with its value
note:Linux kernel 3.9 now support SO_REUSEPORT option
Seems like SOCKET_EAGAIN is an alias of SOCKET_EWOULDBLOCK (int 11)