Php create socket error

socket_create

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

Список параметров

The domain parameter specifies the protocol family to be used by the socket.

Available address/protocol families

Domain Description
AF_INET IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_UNIX Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

type

The type parameter selects the type of communication to be used by the socket.

Available socket types

Type Description
SOCK_STREAM 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.
SOCK_DGRAM Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET 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.
SOCK_RAW 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).
SOCK_RDM Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.
Читайте также:  Отличие самца от самки королевского питона

protocol

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.

Common protocols

Name Description
icmp 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.
udp 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.
tcp 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.

Возвращаемые значения

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.

Ошибки

If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

Смотрите также

  • socket_accept() — Принимает соединение на сокете
  • socket_bind() — Привязывает имя к сокету
  • socket_connect() — Начинает соединение с сокетом
  • socket_listen() — Listens for a connection on a socket
  • socket_last_error() — Возвращает последнюю ошибку на сокете
  • socket_strerror() — Возвращает строку, описывающую ошибку сокета

Источник

socket_create

Создаёт и возвращает экземпляр Socket , также называемый как конечная точка обмена информацией. Типичное сетевое соединение состоит из двух сокетов, один из которых выполняет роль клиента, а другой выполняет роль сервера.

Список параметров

Параметр domain определяет семейство протоколов, используемых сокетами.

Доступные семейства адресов/протоколов

Семейство Описание
AF_INET Internet-протоколы IPv4. TCP и UDP — это стандартные протоколы этого семейства протоколов.
AF_INET6 Internet-протоколы IPv6. TCP и UDP — это стандартные протоколы этого семейства протоколов.
AF_UNIX Семейство протоколов для локального обмена данными. Высокая эффективность и низкие накладные расходы делают его отличным видом IPC (межпроцессного взаимодействия).

type

Параметр type определяет тип обмена данными, который будет использоваться сокетом.

Доступные типы сокетов

Тип Описание
SOCK_STREAM Обеспечивает последовательные, надёжные, полнодуплексные, байтовые потоки с установлением соединения. Может поддерживаться механизм передачи внеполосных (out-of-band) данных. Протокол TCP основан на этом типе сокетов.
SOCK_DGRAM Поддерживает датаграммы (ненадёжные сообщения без установления соединения фиксированной максимальной длины). Протокол UDP основан на этом типе сокетов.
SOCK_SEQPACKET Предоставляет последовательную, надёжную, двунаправленную, базирующуюся на соединениях передачу датаграмм с фиксированной максимальной длиной. Потребитель должен читать весь пакет целиком при каждой итерации чтения.
SOCK_RAW Предоставляет доступ по неподготовленному (raw) сетевому протоколу. Это специальный тип сокета может быть использован для ручного создания любого типа протокола. Стандартное использование этого типа сокетов — выполнение запросов ICMP (таких как ping).
SOCK_RDM Предоставляет надёжный уровень датаграм, не гарантирующий сохранение порядка. Скорее всего, это семейство протоколов не реализовано в вашей операционной системе.

protocol

Параметр protocol указывает конкретный протокол в заданном семействе протоколов domain , который будет использоваться в обмене данными с созданным сокетом. Соответствующее значение может быть получено по имени при помощи функции getprotobyname() . Если желаемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Стандартные протоколы

Название Описание
icmp ICMP (Internet Control Message Protocol, протокол межсетевых управляющих сообщений) используется преимущественно шлюзами и хостами для сообщения об ошибках в передаче датаграмм. Команда «ping» (присутствующая в большинстве современных операционных систем) — это пример использования ICMP-протокола.
udp UDP (User Datagram Protocol, протокол пользовательских датаграмм) — это протокол без установления соединения, ненадёжный, протокол с фиксированной длиной записей. Из-за этих аспектов, UDP требует минимального количества служебной информации.
tcp TCP (The Transmission Control Protocol, протокол управления передачей) — это надёжный, базирующийся на соединениях, потокоориентированный, полнодуплексный протокол. TCP гарантирует, что все пакеты данных будут получены в том порядке, в котором они были отправлены. Если какой-нибудь пакет каким-либо образом был утерян во время передачи данных, TCP будет автоматически передавать пакет повторно до тех пор, пока хост назначения не подтвердит этот пакет. В целях надёжности и производительности, реализация протокола TCP сама выбирает подходящие границы октета нижележащего уровня обмена датаграммами. Таким образом, приложения, использующие TCP, должны предоставлять возможность частичной передачи записей.

Возвращаемые значения

Функция socket_create() возвращает экземпляр Socket в случае успешного выполнения, или false в случае возникновения ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error() . Эта ошибка может быть передана функции socket_strerror() для получения текстового описания ошибки.

Ошибки

Если указан неверный параметр domain или type , функция socket_create() будет использовать по умолчанию значение AF_INET и SOCK_STREAM соответственно, и дополнительно к этому выдаст сообщение E_WARNING .

Список изменений

Версия Описание
8.0.0 В случае успешного выполнения функция возвращает экземпляр Socket ; ранее возвращался ресурс ( resource ).

Смотрите также

  • socket_accept() — Принимает соединение на сокете
  • socket_bind() — Привязывает имя к сокету
  • socket_connect() — Начинает соединение с сокетом
  • socket_listen() — Прослушивает входящие соединения на сокете
  • socket_last_error() — Возвращает последнюю ошибку на сокете
  • socket_strerror() — Возвращает строку, описывающую ошибку сокета

Источник

socket_strerror

socket_strerror() takes as its error_code parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text.

Note:

Although the error messages generated by the socket extension are in English, the system messages retrieved with this function will appear depending on the current locale ( LC_MESSAGES ).

Parameters

A valid socket error number, likely produced by socket_last_error() .

Return Values

Returns the error message associated with the error_code parameter.

Examples

Example #1 socket_strerror() example

if ( false == ( $socket = @ socket_create ( AF_INET , SOCK_STREAM , SOL_TCP ))) echo «socket_create() failed: reason: » . socket_strerror ( socket_last_error ()) . «\n» ;
>

if ( false == (@ socket_bind ( $socket , ‘127.0.0.1’ , 80 ))) echo «socket_bind() failed: reason: » . socket_strerror ( socket_last_error ( $socket )) . «\n» ;
>
?>

The expected output from the above example (assuming the script is not run with root privileges):

socket_bind() failed: reason: Permission denied

See Also

  • socket_accept() — Accepts a connection on a socket
  • socket_bind() — Binds a name to a socket
  • socket_connect() — Initiates a connection on a socket
  • socket_listen() — Listens for a connection on a socket
  • socket_create() — Create a socket (endpoint for communication)

User Contributed Notes

  • Socket Functions
    • socket_​accept
    • socket_​addrinfo_​bind
    • socket_​addrinfo_​connect
    • socket_​addrinfo_​explain
    • socket_​addrinfo_​lookup
    • socket_​bind
    • socket_​clear_​error
    • socket_​close
    • socket_​cmsg_​space
    • socket_​connect
    • socket_​create_​listen
    • socket_​create_​pair
    • socket_​create
    • socket_​export_​stream
    • socket_​get_​option
    • socket_​getopt
    • socket_​getpeername
    • socket_​getsockname
    • socket_​import_​stream
    • socket_​last_​error
    • socket_​listen
    • socket_​read
    • socket_​recv
    • socket_​recvfrom
    • socket_​recvmsg
    • socket_​select
    • socket_​send
    • socket_​sendmsg
    • socket_​sendto
    • socket_​set_​block
    • socket_​set_​nonblock
    • socket_​set_​option
    • socket_​setopt
    • socket_​shutdown
    • socket_​strerror
    • socket_​write
    • socket_​wsaprotocol_​info_​export
    • socket_​wsaprotocol_​info_​import
    • socket_​wsaprotocol_​info_​release

    Источник

Оцените статью