ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Спонсор статьи: Компания ISsoft обновила список вакансий IT направлений, таких как JAVA, dotNET, Front-End и другие.

PHP. Операции ввода-вывода на сетевом уровне. Часть Вторая.


28-12-2009

Необязательный аргумент 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.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Операции ввода-вывода на сетевом уровне PHP. Операции ввода-вывода на сетевом уровне. Часть Третья.