note:Linux kernel 3.9 now support SO_REUSEPORT option
下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。
AF_UNIX
(integer)
AF_INET
(integer)
AF_INET6
(integer)
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)
MSG_EOF
(integer)
SO_DEBUG
(integer)
SO_REUSEADDR
(integer)
SO_REUSEPORT
(integer)
SO_REUSEPORT
socket选项的平台上可用。包括Mac OS X和FreeBSD,不包括Linux和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)
SOL_SOCKET
(integer)
PHP_NORMAL_READ
(integer)
PHP_BINARY_READ
(integer)
SOL_TCP
(integer)
SOL_UDP
(integer)
以下常量在Windows和类UNIX平台上被定义。每个常量只有在平台上有该常量值的时候才会被定义。
SOCKET_EINTR
(integer)
SOCKET_EBADF
(integer)
SOCKET_EACCES
(integer)
SOCKET_EFAULT
(integer)
SOCKET_EINVAL
(integer)
SOCKET_EMFILE
(integer)
SOCKET_ENAMETOOLONG
(integer)
SOCKET_ENOTEMPTY
(integer)
SOCKET_ELOOP
(integer)
SOCKET_EWOULDBLOCK
(integer)
SOCKET_EREMOTE
(integer)
SOCKET_EUSERS
(integer)
SOCKET_ENOTSOCK
(integer)
SOCKET_EDESTADDRREQ
(integer)
SOCKET_EMSGSIZE
(integer)
SOCKET_EPROTOTYPE
(integer)
SOCKET_EPROTONOSUPPORT
(integer)
SOCKET_ESOCKTNOSUPPORT
(integer)
SOCKET_EOPNOTSUPP
(integer)
SOCKET_EPFNOSUPPORT
(integer)
SOCKET_EAFNOSUPPORT
(integer)
SOCKET_EADDRNOTAVAIL
(integer)
SOCKET_ENETDOWN
(integer)
SOCKET_ENETUNREACH
(integer)
SOCKET_ENETRESET
(integer)
SOCKET_ECONNABORTED
(integer)
SOCKET_ECONNRESET
(integer)
SOCKET_ENOBUFS
(integer)
SOCKET_EISCONN
(integer)
SOCKET_ENOTCONN
(integer)
SOCKET_ESHUTDOWN
(integer)
SOCKET_ETIMEDOUT
(integer)
SOCKET_ECONNREFUSED
(integer)
SOCKET_EHOSTDOWN
(integer)
SOCKET_EHOSTUNREACH
(integer)
SOCKET_EALREADY
(integer)
SOCKET_EINPROGRESS
(integer)
以下常量只能在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)
以下常量仅适用于类UNIX。 每个常量只有在该平台上此值可用时被定义。
SOCKET_EPERM
(integer)
SOCKET_ENOENT
(integer)
SOCKET_EIO
(integer)
SOCKET_ENXIO
(integer)
SOCKET_E2BIG
(integer)
SOCKET_EAGAIN
(integer)
SOCKET_ENOMEM
(integer)
SOCKET_ENOTBLK
(integer)
SOCKET_EBUSY
(integer)
SOCKET_EEXIST
(integer)
SOCKET_EXDEV
(integer)
SOCKET_ENODEV
(integer)
SOCKET_ENOTDIR
(integer)
SOCKET_EISDIR
(integer)
SOCKET_ENFILE
(integer)
SOCKET_ENOTTY
(integer)
SOCKET_ENOSPC
(integer)
SOCKET_ESPIPE
(integer)
SOCKET_EROFS
(integer)
SOCKET_EMLINK
(integer)
SOCKET_EPIPE
(integer)
SOCKET_ENOLCK
(integer)
SOCKET_ENOSYS
(integer)
SOCKET_ENOMSG
(integer)
SOCKET_EIDRM
(integer)
SOCKET_ECHRNG
(integer)
SOCKET_EL2NSYNC
(integer)
SOCKET_EL3HLT
(integer)
SOCKET_EL3RST
(integer)
SOCKET_ELNRNG
(integer)
SOCKET_EUNATCH
(integer)
SOCKET_ENOCSI
(integer)
SOCKET_EL2HLT
(integer)
SOCKET_EBADE
(integer)
SOCKET_EBADR
(integer)
SOCKET_EXFULL
(integer)
SOCKET_ENOANO
(integer)
SOCKET_EBADRQC
(integer)
SOCKET_EBADSLT
(integer)
SOCKET_ENOSTR
(integer)
SOCKET_ENODATA
(integer)
SOCKET_ETIME
(integer)
SOCKET_ENOSR
(integer)
SOCKET_ENONET
(integer)
SOCKET_ENOLINK
(integer)
SOCKET_EADV
(integer)
SOCKET_ESRMNT
(integer)
SOCKET_ECOMM
(integer)
SOCKET_EPROTO
(integer)
SOCKET_EMULTIHOP
(integer)
SOCKET_EBADMSG
(integer)
SOCKET_ENOTUNIQ
(integer)
SOCKET_EBADFD
(integer)
SOCKET_EREMCHG
(integer)
SOCKET_ERESTART
(integer)
SOCKET_ESTRPIPE
(integer)
SOCKET_EPROTOOPT
(integer)
SOCKET_ADDRINUSE
(integer)
SOCKET_ETOOMANYREFS
(integer)
SOCKET_EISNAM
(integer)
SOCKET_EREMOTEIO
(integer)
SOCKET_EDQUOT
(integer)
SOCKET_ENOMEDIUM
(integer)
SOCKET_EMEDIUMTYPE
(integer)
note:Linux kernel 3.9 now support SO_REUSEPORT option
$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
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