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 asyncronous DNS resolving

= NULL

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

Resolves the DNS name hostname, looking for addresses of type family ( EventUtil::AF_* constants). If the name resolution fails, it invokes the event callback with an error event. If it succeeds, it launches a connection attempt just as EventBufferEvent::connect() would.

dns_base is optional. May be null, or an object created with EventDnsBase::__construct(). For asyncronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Забелешка:

EventDnsBase is available only if Event configured --with-event-extra ( event_extra library, libevent protocol-specific functionality support including HTTP, DNS, and RPC ).

Забелешка:

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

Параметри

dns_base

Object of EventDnsBase in case if DNS is to be resolved asyncronously. Otherwise null.

hostname

Hostname to connect to. Recognized formats are:

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

Port number

family

Address family. EventUtil::AF_UNSPEC, EventUtil::AF_INET, или EventUtil::AF_INET6. Види EventUtil constants.

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

Патеката до 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.