integer socket_recvfrom(resource socket, string buffer, integer length, string host, integer port)
Функция socket_recvfrom считывает данные в указанный буфер. Аргумент length устанавливает в байтах максимальное количество принимаемых данных. Аргумент flags принимает значение MSG_OOB или MSG_PEEK. PHP задает в аргументах host и port соответствующие значения, идентифицирующие узел, отправляющий данные.
boolean socket_recvmsg(resource socket, resource iovector, array control, integer length, integer flags, string host, integer port)
Функция socket_recvmsg считывает данные из сокета в векторный ресурс ввода-вывода. PHP задает аргумент control, который представляет собой ассоциативный массив и состоит из трех элементов: cmsg_level, cmsg_type и cmsg_data. Аргументом length задается длина дополнительных данных (в байтах). Аргумент flags принимает и возвращает значения. В то время, когда писалась эта книга, PHP еще не использовал всех выходных констант. За справкой обратитесь к man-странице функции recvmsg.
В аргументах host и port задаются соответствующие значения для узла, отправляющего данные.
integer socket_select(array read, array write, array exception, integer timeout_seconds, integer timeout_microseconds)
Функция socket_select контролирует изменения, происходящие на узлах. PHP просматривает поступление новых данных на сокетах, заданных в массиве read. PHP просматривает готовность к приемке новых данных в потоках, заданных в массиве write. PHP просматривает на наличие ошибок потоки, заданные в аргументе exception. По истечении времени, указанного в секундах в аргументе timeout_ seconds, функция возвращает значение. В аргументе timeout_microseconds задается тайм-аут меньше одной секунды.
Функция socket_select возвращает количество сокетов, изменивших свое состояние, или значение FALSE, если возникла ошибка. При тайм-ауте вызова эта функция возвращает значение, равное нулю. Она также модифицирует заданные массивы таким образом, чтобы они содержали только сокеты, в которых произошли изменения.
В случае отсутствия сокетов определенного типа, предназначенных для наблюдения, можно задать пустой массив или переменную, имеющую значение NULL.
integer socket_send(resource socket, string buffer, integer length, integer flags)
Функция socket_send записывает данные, хранящиеся в аргументе buffer заданного соединения. При этом необходимо задать в байтах длину данных, записываемых в буфер. Кроме того, необходимо задать аргумент flags со значением NULL или комбинацией констант MSG_DONTROUTE и MSG_OOB. Функция возвращает объем записанных данных в байтах. В случае ошибки возвращается значение FALSE.
boolean socket_sendmsg(resource socket, resource iovector, integer flags, string address, integer port)
Функция socket_sendmsg делает попытки переслать данные через указанный сокет и предназначена прежде всего для сокетов, не имеющих соединений. В аргументе iovector задается ресурс, который возвратила функция socket_iovec_alloc. Кроме того, необходимо задать аргумент flags со значением NULL или с комбинацией констант MSG_DONTROUTE и MSG_OOB, а также аргумент address. Для сокетов, работающих с Internet, требуется задать аргумент port.
Функция socket_sendmsg возвращает значение TRUE, если он отправляет данные, но при этом их доставка не гарантируется.
integer socket_sendto(resource socket, string buffer, integer length, integer flags, string address, integer port)
Функция socket_sendto делает попытку переслать через сокет данные, указанные в аргументе buffer. Она предназначена прежде всего для сокетов, не имеющих соединений. Необходимо задать аргумент flags со значениями NULL, MSG_DONTROUTE и MSG_OOB или с их комбинацией, а также аргумент address. Для сокетов, работающих с Internet, требуется задать аргумент port. Функция socket_sendto возвращает значение TRUE, если она отправляет данные, при этом доставка данных не гарантируется.
boolean socket_set_block(resource socket)
Функция socket_set_block переводит сокет в режим блокировки. В режиме блокировки операции ввода-вывода ожидают завершения запросов.
boolean socket_set_nonblock(resource socket)
Функция socket_set_nonblock переводит сокет в незаблокированный режим работы. В незаблокированном режиме операции ввода-вывода осуществляются немедленно, даже если данные не могут быть переданы.
boolean socket_set_option(resource socket, integer level, integer option, integer value)
Функция socket_set_option устанавливает значение option для заданного со-кета. Аргумент level должен быть константой, отражающей уровень, к которому применяется значение option. Допустимые значения - SOL_SOCKET, SOL_TCP и SOL_UDP. Аргумент option должен соответствовать одной из констант, приведенных в табл. 10.5.
boolean socket_shutdown(resource socket, integer how)
Функция socket_shutdown закрывает сокет для операций ввода-вывода. Чтобы остановить прием данных, необходимо установить для аргумента how значение 0. Чтобы остановить отправку данных, устанавливается значение 1, а для остановки обеих операций сразу устанавливается значение 2.
string socket_strerror(integer error)
Функция socket_strerror возвращает описание ошибки по ее номеру.
integer socket_write(resource socket, string buffer, integer length)
Функция socket_write записывает данные из заданного буфера в сокет. Дополнительно с помощью аргумента length можно задать размер данных в байтах, записываемых из буфера. Если этот аргумент на задан, будет отослан весь буфер. Эта функция обычна удобнее в использовании, чем socket_send.
boolean socket_writev(resource socket, resource iovector)
Функция socket_writev записывает заданные векторы ввода-вывода в сокет.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операции ввода-вывода на сетевом уровне. Часть Седьмая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операции ввода-вывода на сетевом уровне. Часть Шестая. | PHP. Операции ввода-вывода на сетевом уровне. Часть Восьмая. |