Аргерих Л. О языке РНР. Часть 3. Страница 74


Хотя сейчас аргумент AF_UNIX поддерживается в версиях РНР для Microsoft Windows, в РНР 4.0.6 он работает неправильно, и чтобы повысить переноси­мость кода, его следует по возможности избегать. Аргумент type задает уро­вень взаимодействующего протокола, например определяет, взаимодействует ли протокол с уровнем IP или с транспортным уровнем. Он также определяет механизм передачи пакетов, т. е. будет ли связь потоковой или без установле­ния соединения. Перечень возможных значений приводится в табл. 13.2:

Не все сочетания аргумента domain с аргументом type имеют смысл. Напри­мер, не имеет смысла указывать AF_UNIX в качестве первого аргумента и S0CK_RAW, т. к. потоковый протокол UNIX не имеет отношения к уровню IP.

Начиная с версии РНР4.1.0 наименования и списки параметров некоторых функций, работающих с сокетами, изменились. В данном переводе, в отличие от оригинального издания, мы прилагаем функции в той нотации, в которой они присутствуют в новом socket API в РНР. Код примеров также переработан в соответствии с новым socket API. — Примеч. науч. ред.

Для разрешения неоднозначности некоторых комбинаций есть третий аргу­мент. Поскольку третий аргумент в РНР «недореализован» и в большинстве случаев значение 0 действует, безопаснее всего его и указывать.

Функция возвращает целое число, представляющее дескрип­

тор сокета, с которым можно проводить операции чтения/записи. Если воз­вращается отрицательное число, это указывает на ошибку. Его можно пере­дать функции socket_strerror(), возвращающей строку с сообщением, опи­сывающим ошибку.

socket_bind()

int socketJ)ind(int socket, string address [, int port])

При создании сокета на сервере необходимо привязать его к IP-адресу и хо­рошо известному порту. Функция socket_bind() принимает в качестве перво­го аргумента дескриптор сокета, а в качестве второго - локальный адрес, яв­ляющийся адресом IP (в случае если дескриптор сокета был создан для се­мейства протоколов AF_INET). Если сокет был создан для семейства протоко­лов AFJJNIX, то первый аргумент задает путь UNIX, ведущий к фактическому доменному сокету UNIX.

Аргумент ро rt действует только в случае AF_INET и задает порт, к которому дол­жен привязаться сервер. Если порт уже занят другой службой, выполнение функции socket_bind() завершается неудачей. Если возвращается отрицатель­ное значение, это указывает на ошибку, текстовое описание которой можно получить, передав это число в качестве аргумента функции socket_st г error ().




В магазине мерси можно найти смесь нан кисломолочный цена самая низкая в интернете. Самое лучшее детское питание "НАН" от мирового лидера в производстве сухой смеси подойдет для каждого малыша от самого рождения.