Функции Язык программирования PHP

socket_create

(PHP 4 >= 4.1.0)

socket_create - создаёт сокет (конечную точку соединения).

Описание

resource socket_create (int domain, int type, int protocol)

Предупреждение!

Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Создаёт конечную точку соединения (сокет) и возвращает ресурс сокета.

Параметр domain устанавливает домен (семейство протокола) для использования в соединении. В настоящее время понимаются AF_INET и AF_UNIX. AF_INET обычно используется для соединений на основе internet. AF_UNIX использует pathnames для идентификации сокетов и, следовательно, применим только для локальных соединений (что, с другой стороны, быстрее).

Параметр type выбирает тип сокета. Это один из: SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM, SOCK_PACKET. Два самых распространённых - SOCK_DGRAM для UDP (connectionless) взаимодействия и SOCK_STREAM для TCP-взаимодействия.

protocol устанавливает протокол: SOL_UDP или SOL_TCP.

Возвращает ресурс сокета при успехе, FALSE при ошибке. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки.

Дополнительно об использовании socket_create(), а также о значениях различных параметров, см. Unix man-страницу socket (2).

Примечание: если задан неверный domain или type, socket_create() по умолчанию имеет AF_INET и SOCK_STREAM соответственно и дополнительно выдаёт сообщение E_WARNING.

См. также socket_accept(), socket_bind(), socket_connect(), socket_listen(), socket_last_error() и socket_strerror().


Назад Оглавление Вперёд
socket_create_pair Вверх socket_get_option

Утверждения/Assertions

Утверждение назад начинается с (?<= для положительного и с (?<! - для отрицательного утверждения. Например,

(?<!foo)bar

не найдёт вхождения "bar", перед которым нет "foo". Содержимое утверждения назад ограничено так, что все строки, с которыми оно совпадает обязаны иметь фиксированные размеры. Однако, если есть несколько альтернатив, они не все должны иметь один и тот же фиксированный размер. Таким образом,

(?<=bullock|donkey)

допустимо, а

(?<!dogs?|cats?)

вызовет ошибку времени компиляции. Ответвления, которые совпадают со строками разной длины, допускаются только на верхнем уровне lookbehind-утверждения. Это расширение относительно 5.005, который требует, чтобы все ответвления совпадали с одной длиной строки. Такое утверждение как

(?<=ab(c|de))

недопустимо, поскольку имеет единственное ответвление верхнего уровня, которое может совпадать с двумя различными размерами, но это допускается, если переписать его с двумя ответвлениями верхнего уровня:

(?<=abc|abde)

Утверждения назад/lookbehind реализованы так, что, для каждой альтернативы, временно сдвигается текущая позиция на фиксированную ширину, а затем делается попытка найти совпадение.
Если перед текущей позицией недостаточно символов, совпадение считается неудачным. Утверждения назад в сочетании с once-only субпатэрнами могут особенно пригодиться для поиска совпадений в конце строк; пример дан в конце этого раздела для once-only субпатэрнов.