PHP.mk документација

EventBufferEvent::connectHost

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

eventbufferevent.connecthost.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека eventbufferevent.connecthost.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
EventBufferEvent::connectHost

Референца за `eventbufferevent.connecthost.php` со подобрена типографија и навигација.

eventbufferevent.connecthost.php

EventBufferEvent::connectHost

класата Event

EventBufferEvent::connectHostConnects to a hostname with optionally asynchronous DNS resolving

= NULL

public function EventBufferEvent::connectHost(
          EventDnsBase $dns_base ,
          string $hostname ,
          int $port ,
          int $family Овој образец на баферирано влезно/излезно работење е доволно вообичаен што Libevent обезбедува општ механизам за него. „Бафер на настани“ се состои од основен транспорт (како што е сокет), бафер за читање и бафер за запишување. Наместо обични настани, кои даваат повици кога основниот транспорт е подготвен за читање или запишување, баферот на настани ги повикува своите повици обезбедени од корисникот кога прочитал или запишал доволно податоци.
): bool

Резолвира DNS име хост име, барајќи адреси од типот family ( EventUtil::AF_* константи). Ако резолвирањето на името не успее, го повикува callback-от на настанот со настан за грешка. Ако успее, започнува обид за поврзување исто како EventBufferEvent::connect() would.

dns_base е опционално. Може да биде null, или објект креиран со EventDnsBase::__construct(). For asynchronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Забелешка:

EventDnsBase е достапно само ако Event configured --with-event-extra ( event_extra библиотека, libevent функционалност специфична за протокол, вклучувајќи HTTP, DNS и RPC ).

Забелешка:

EventBufferEvent::connectHost() requires libevent-2.0.3-alpha Должината на случајниот стринг што треба да се врати во бајти; мора да биде

Параметри

dns_base
Објект од EventDnsBase in case if DNS is to be resolved asynchronously. Otherwise 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 константи.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Примери

Пример #1 EventBufferEvent::connectHost() example

<?php
/* Read callback */
function readcb($bev, $base) {
//$input = $bev->input; //$bev->getInput();

//$pos = $input->search("TTP");
$pos = $bev->input->search("TTP");

while ((
$n = $bev->input->remove($buf, 1024)) > 0) {
echo
$buf;
}
}

/* Event callback */
function eventcb($bev, $events, $base) {
if (
$events & EventBufferEvent::CONNECTED) {
echo
"Connected.\n";
} elseif (
$events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
if (
$events & EventBufferEvent::ERROR) {
echo
"DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
}

echo
"Closing\n";
$base->exit();
exit(
"Done\n");
}
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
exit(
"Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb", $base
);
if (!
$bev) {
exit(
"Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
"GET {$argv[2]} HTTP/1.0\r\n".
"Host: {$argv[1]}\r\n".
"Connection: Close\r\n\r\n"
)) {
exit(
"Failed adding request to output buffer\n");
}

if (!
$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
exit(
"Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Горниот пример ќе прикаже нешто слично на:

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 сокет

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.