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

socket_create_listen

(PHP 4 >= 4.1.0)

socket_create_listen - открывает сокет на порте для приёма соединений.

Описание

resource socket_create_listen (int port [, int backlog])

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

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

Эта функция призвана облегчить создание нового сокета, который только прослушивает для приёма новых соединений.

socket_create_listen() создаёт новый ресурс сокета типа AF_INET, прослушивающего все локальные интерфейсы по данному порту, ожидая новых соединений.

Параметр backlog определяет максимальный размер очереди запускаемых соединений. SOMAXCONN может передаваться как параметр backlog; см. дополнительно socket_listen().

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

Примечание: если вы хотите создать сокет, который прослушивает только определённые интерфейсы, необходимо использовать socket_create(), socket_bind() и socket_listen().

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


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

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

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

(?<!foo)bar

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

(?<=bullock|donkey)

допустимо, а

(?<!dogs?|cats?)

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

(?<=ab(c|de))

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

(?<=abc|abde)

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