预定义常量
下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。
-
AF_UNIX
(int) -
AF_INET
(int) -
AF_INET6
(int) - 只有在编译时加入 IPv6 支持的时候才有效。
-
SOCK_STREAM
(int) -
SOCK_DGRAM
(int) -
SOCK_RAW
(int) -
SOCK_SEQPACKET
(int) -
SOCK_RDM
(int) -
MSG_OOB
(int) -
MSG_WAITALL
(int) -
MSG_PEEK
(int) -
MSG_DONTROUTE
(int) -
MSG_EOR
(int) - 在 Windows 平台上无效。
-
MSG_EOF
(int) - 在 Windows 平台上无效。
-
SO_DEBUG
(int) -
SO_REUSEADDR
(int) -
SO_REUSEPORT
(int) -
该常量只在支持
SO_REUSEPORT
socket 选项的平台上可用:这包括 Linux、 macOS 和 *BSD,但不包括 Windows。 -
SO_KEEPALIVE
(int) -
SO_DONTROUTE
(int) -
SO_LINGER
(int) -
SO_BROADCAST
(int) -
SO_OOBINLINE
(int) -
SO_SNDBUF
(int) -
SO_RCVBUF
(int) -
SO_SNDLOWAT
(int) -
SO_RCVLOWAT
(int) -
SO_SNDTIMEO
(int) -
SO_RCVTIMEO
(int) -
SO_TYPE
(int) -
SO_ERROR
(int) -
TCP_NODELAY
(int) - 用于禁用 TCP Nagle 算法。
-
SO_MARK
(int) - 从 PHP 8.1.0 开始可用。
- 从 PHP 8.1.0 开始可用。
-
SO_ACCEPTFILTER
(string) - 从 PHP 8.1.0 开始可用。
-
SO_DONTTRUNC
(int) - 从 PHP 8.1.0 开始可用。
-
SO_WANTMORE
(int) - 从 PHP 8.1.0 开始可用。
-
TCP_DEFER_ACCEPT
(int) - 从 PHP 8.1.0 开始可用。
-
SOL_SOCKET
(int) -
PHP_NORMAL_READ
(int) -
PHP_BINARY_READ
(int) -
SOL_TCP
(int) -
SOL_UDP
(int)
以下常量在Windows和类UNIX平台上被定义。每个常量只有在平台上有该常量值的时候才会被定义。
-
SOCKET_EINTR
(int) - 中断系统调用。
-
SOCKET_EBADF
(int) - 坏文件编号。
-
SOCKET_EACCES
(int) - 拒绝访问。
-
SOCKET_EFAULT
(int) - 错误的地址。
-
SOCKET_EINVAL
(int) - 无效的参数。
-
SOCKET_EMFILE
(int) - 打开的文件太多。
-
SOCKET_ENAMETOOLONG
(int) - 文件名过长。
-
SOCKET_ENOTEMPTY
(int) - 目录不为空。
-
SOCKET_ELOOP
(int) - 遇到了太多的符号链接。
-
SOCKET_EWOULDBLOCK
(int) - 操作将阻塞。
-
SOCKET_EREMOTE
(int) - 对象是远程。
-
SOCKET_EUSERS
(int) - 太多用户。
-
SOCKET_ENOTSOCK
(int) - 非socket套接字操作。
-
SOCKET_EDESTADDRREQ
(int) - 需要目的地址。
-
SOCKET_EMSGSIZE
(int) - 消息太长。
-
SOCKET_EPROTOTYPE
(int) - socket协议类型错误。
-
SOCKET_EPROTONOSUPPORT
(int) - 不支持的协议。
-
SOCKET_ESOCKTNOSUPPORT
(int) - 不支持的socket类型。
-
SOCKET_EOPNOTSUPP
(int) - 传输断点不支持的操作。
-
SOCKET_EPFNOSUPPORT
(int) - 不支持的协议族。
-
SOCKET_EAFNOSUPPORT
(int) - 协议不支持的地址族。
-
SOCKET_EADDRNOTAVAIL
(int) - 不能分配请求的地址。
-
SOCKET_ENETDOWN
(int) - 网络出现故障。
-
SOCKET_ENETUNREACH
(int) - 网络不可达。
-
SOCKET_ENETRESET
(int) - 复位,网络掉线。
-
SOCKET_ECONNABORTED
(int) - 软件导致连接中止。
-
SOCKET_ECONNRESET
(int) - 对方重置连接。
-
SOCKET_ENOBUFS
(int) - 无可用的缓存区空间。
-
SOCKET_EISCONN
(int) - 传输端点已经连接。
-
SOCKET_ENOTCONN
(int) - 传输端点未连接。
-
SOCKET_ESHUTDOWN
(int) - 传输端点关闭,无法发送。
-
SOCKET_ETIMEDOUT
(int) - 连接超时。
-
SOCKET_ECONNREFUSED
(int) - 连接被拒绝。
-
SOCKET_EHOSTDOWN
(int) - 主机已关闭。
-
SOCKET_EHOSTUNREACH
(int) - 没有路由到主机。
-
SOCKET_EALREADY
(int) - 操作已在进行中。
-
SOCKET_EINPROGRESS
(int) - 操作正在进行中。
以下常量只能在windows中定义。
-
SOCKET_ENOPROTOOPT
(int) -
SOCKET_EADDRINUSE
(int) -
SOCKET_ETOOMYREFS
(int) -
SOCKET_EPROCLIM
(int) -
SOCKET_EDUOT
(int) -
SOCKET_ESTALE
(int) -
SOCKET_EDISCON
(int) -
SOCKET_SYSNOTREADY
(int) -
SOCKET_VERNOTSUPPORTED
(int) -
SOCKET_NOTINITIALISED
(int) -
SOCKET_HOST_NOT_FOUND
(int) -
SOCKET_TRY_AGAIN
(int) -
SOCKET_NO_RECOVERY
(int) -
SOCKET_NO_DATA
(int) -
SOCKET_NO_ADDRESS
(int)
以下常量仅适用于类UNIX。 每个常量只有在该平台上此值可用时被定义。
-
SOCKET_EPERM
(int) - 操作不允许。
-
SOCKET_ENOENT
(int) - 文件或目录不存在。
-
SOCKET_EIO
(int) - I/O错误。
-
SOCKET_ENXIO
(int) - 未找到设备或地址。
-
SOCKET_E2BIG
(int) - 参数列表太长。
-
SOCKET_EAGAIN
(int) - 请重试。
-
SOCKET_ENOMEM
(int) - 内存不足。
-
SOCKET_ENOTBLK
(int) - 需要块设备。
-
SOCKET_EBUSY
(int) - 设备或资源忙。
-
SOCKET_EEXIST
(int) - 文件存在。
-
SOCKET_EXDEV
(int) - 跨设备链路。
-
SOCKET_ENODEV
(int) - 设备不存在。
-
SOCKET_ENOTDIR
(int) - 非目录。
-
SOCKET_EISDIR
(int) - 是目录。
-
SOCKET_ENFILE
(int) - 文件表溢出。
-
SOCKET_ENOTTY
(int) - 不是打字机。
-
SOCKET_ENOSPC
(int) - 设备上没有剩余空间。
-
SOCKET_ESPIPE
(int) - 非法查找。
-
SOCKET_EROFS
(int) - 文件系统只读。
-
SOCKET_EMLINK
(int) - 链路太多。
-
SOCKET_EPIPE
(int) - 管道断开。
-
SOCKET_ENOLCK
(int) - 无可用的记录锁。
-
SOCKET_ENOSYS
(int) - 函数未实现。
-
SOCKET_ENOMSG
(int) - 无需要类型的消息。
-
SOCKET_EIDRM
(int) - 标识符被删除。
-
SOCKET_ECHRNG
(int) - 通道数超出范围。
-
SOCKET_EL2NSYNC
(int) - 2级未同步。
-
SOCKET_EL3HLT
(int) - 3级停止。
-
SOCKET_EL3RST
(int) - 3级重置。
-
SOCKET_ELNRNG
(int) - 链接数超出范围。
-
SOCKET_EUNATCH
(int) - 协议驱动没有安装。
-
SOCKET_ENOCSI
(int) - 没有可用的CSI结构。
-
SOCKET_EL2HLT
(int) - 2级停止。
-
SOCKET_EBADE
(int) - 无效的交换。
-
SOCKET_EBADR
(int) - 无效的请求描述符。
-
SOCKET_EXFULL
(int) - 交换满了。
-
SOCKET_ENOANO
(int) - 无阳极。
-
SOCKET_EBADRQC
(int) - 无效的请求代码。
-
SOCKET_EBADSLT
(int) - 无效的插槽。
-
SOCKET_ENOSTR
(int) - 设备不是流。
-
SOCKET_ENODATA
(int) - 无可用的数据。
-
SOCKET_ETIME
(int) - 计时器过期。
-
SOCKET_ENOSR
(int) - 流资源不够用。
-
SOCKET_ENONET
(int) - 机器不在网络上。
-
SOCKET_ENOLINK
(int) - 链接已被切断。
-
SOCKET_EADV
(int) - 通知错误。
-
SOCKET_ESRMNT
(int) - Srmount错误。
-
SOCKET_ECOMM
(int) - 发送时通信错误。
-
SOCKET_EPROTO
(int) - 协议错误。
-
SOCKET_EMULTIHOP
(int) - 多跳尝试。
-
SOCKET_EBADMSG
(int) - 不是一个数据消息。
-
SOCKET_ENOTUNIQ
(int) - 名称在网络上不唯一。
-
SOCKET_EBADFD
(int) - 文件描述符处于错误状态。
-
SOCKET_EREMCHG
(int) - 远程地址改变。
-
SOCKET_ERESTART
(int) - 中断的系统调用应该被重新启动。
-
SOCKET_ESTRPIPE
(int) - 流管道错误。
-
SOCKET_EPROTOOPT
(int) - 协议不可用。
-
SOCKET_ADDRINUSE
(int) - 地址已经被占用。
-
SOCKET_ETOOMANYREFS
(int) - 过多的引用:无法接合。
-
SOCKET_EISNAM
(int) - 是一个已命名类型的文件。
-
SOCKET_EREMOTEIO
(int) - 远程I/O错误。
-
SOCKET_EDQUOT
(int) - 超过配额。
-
SOCKET_ENOMEDIUM
(int) - 未找到媒体。
-
SOCKET_EMEDIUMTYPE
(int) - 错误的媒体类型。
-
SCM_RIGHTS
(int) - 发送或接收一组来自另一个进程打开的文件描述符。
-
SCM_CREDENTIALS
(int)

User Contributed Notes 4 notes
Anonymous ¶
10 years ago
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
gvgvgvijayan at gmail dot com ¶
9 years ago
$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
kenverhaegen at gmail dot com ¶
2 years ago
Seems like SOCKET_EAGAIN is an alias of SOCKET_EWOULDBLOCK (int 11)