Необязательный аргумент timeout установит время в секундах, которое PHP ожидает до установки соединения. По необходимости можно указать и доли секунд. Если требуется установить значение тайм-аута для операций чтения и записи, воспользуйтесь директивой stream_set_timeout. Можно также указать другие параметры подключения с помощью функций работы с потоками, описанными в главе 9, "Операционная система", например установку блокировки (листинг 10.3). Ключ pfsockopen добавляет устойчивое функционирование функции fsockopen.
Листинг 10.3. Функция fsockopen
<?php
//указать браузеру не преобразовывать header("Content-type: text/plain"); //попробовать подключиться к Web-серверу //тайм-аут после 6 0 секунд
$fp = fsockopen("www.leonatkinson.com", 80, $error_number, $error_description,
60); if($fp)
{
// установить режим блокировки stream_set_blocking($fp, FALSE);
// указать серверу, что нам нужен root- документ fputs($fp, "GET / HTTP/1.0rn");
fputs($fp, "rn"); while(!feof($fp))
{
//распечатать следующие 4 №айт print(fgets($fp, 4096));
}
//закрыть соединение fclose($fp);
}
else
{
//$connect сделал ошибку print("Произошла ошибка!<BR>n"); print("Номер: $error_number<BR>n"); print("Описание: $error_description<BR>n");
}
string gethostbyaddr(string ip_address)
Функция gethostbyaddr (листинг 10.4) возвращает имя узла, заданного IP-адресом. Если имя узла невозможно определить по адресу, возвращается адрес.
Листинг 10.4. Функция gethostbyaddr
<?php
print(gethostbyaddr("216.218.178.111"));
?>
string gethostbyname(string hostname)
Функция gethostbyname (листинг 10.5) возвращает IP-адрес узла, заданного по имени. Возможно, что имени соответствует более одного IP-адреса. Для определения каждого из них, можно воспользоваться функцией gethostbynamel.
Листинг 10.5. Функция gethostbyname
<?php
print(gethostbyname("www.php.net"));
?>
array gethostbynamel(string hostname)
Функция gethostbynamel (листинг 10.6) возвращает перечень IP-адресов, которым соответствует данное имя.
getmxrr
Функция getmxrr является псевдонимом функции dns_get_mx.
| Листинг 10.6. Функция gethostbynamel_
<?php
foreach(gethostbynamel("www.microsoft.com") as $host)
{
print("$host<br>n");
}
integer getprotobyname(string name)
Функция getprotobyname возвращает код протокола.
string getprotobynumber(integer protocol)
Функция getprotobynumber (листинг 10.7) возвращает имя протокола по его коду.
| Листинг 10.7. Функции getprotobyname и getprotobynumber_
<?php
print("UDP - это протокол " . getprotobyname('udp') . "<br>n"); print("Протокол 6 - это " . getprotobynumber(6) . "<br>n");
?>
integer getservbyname(string service, string protocol)
Функция getservbyname (листинг 10.8) возвращает порт, используемый службой. Аргумент protocol должен иметь значение tcp или udp.
| Листинг 10.8. Функции getservbyname и getservbyport_
<?php
//проверить, какой порт использует протокол ftp
$port = getservbyname("ftp", "tcp");
print("FTP uses port $port<br>n");
//проверить, какая служба использует протокол 25
$service = getservbyport(25, "tcp");
print(" Порт 25 используется $service<br>n");
?>
string getservbyport(integer port, string protocol)
Функция getservbyport возвращает имя службы, использующей указанный порт. В аргументе protocol должно быть указано значение tcp или udp.
ТОП-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. Операции ввода-вывода на сетевом уровне. Часть Третья. |