# 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 macOS 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.