EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHostПодключается по имени хоста с возможностью асинхронного разрешения DNS

Описание

publicEventBufferEvent::connectHost(
    EventDnsBase$dns_base,
    string$hostname,
    int$port,
    int$family = EventUtil::AF_UNSPEC
): bool

Разрешает имя хоста DNS-имени, ища адреса типа family (константы EventUtil::AF_*). Если разрешение имени не удалось произвести, вызывает callback-функцию события с событием ошибки. В случае успешного выполнения совершает попытку подключения так же, как EventBufferEvent::connect().

Параметр dns_base не является обязательным. Он может иметь значение null или ссылаться на объект, созданный с помощью EventDnsBase::__construct(). Для асинхронного разрешения имени хоста необходимо передать действительный базовый ресурс DNS-события. В противном случае разрешение имени хоста будет заблокировано.

Замечание:

EventDnsBase доступен, только если Event настроен с --with-event-extra (библиотека event_extra, поддержка функций протокола libevent, включая HTTP, DNS и RPC).

Замечание:

EventBufferEvent::connectHost() требует libevent-2.0.3-alpha или выше.

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

dns_base

Объект EventDnsBase в случае, если DNS нужно разрешить асинхронно. null в противном случае.

hostname

Имя хоста для подключения. Распознаваемые форматы:

www.example.com (hostname) 1.2.3.4 (ipv4address) ::1 (ipv6address) [::1] ([ipv6address])
port

Номер порта.

family

Семейство адресов. EventUtil::AF_UNSPEC, EventUtil::AF_INET или EventUtil::AF_INET6. Обратитесь к списку констант EventUtil.

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

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Пример использования EventBufferEvent::connectHost()

<?php

function readcb($bev, $base) {
//$input = $bev->input;

Вывод приведённого примера будет похож на:

Connected. HTTP/1.0 301 Moved Permanently Location: http://www.google.co.uk/ Content-Type: text/html; charset=UTF-8 Date: Sat, 09 Mar 2013 12:21:19 GMT Expires: Mon, 08 Apr 2013 12:21:19 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 221 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.co.uk/">here</A>. </BODY></HTML> Closing Done

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

  • EventBufferEvent::connect() - Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX
To Top