12.18 Примеры
12.18 Примеры
Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.
Запрос требовал трансляции имени www.microsoft.com в адрес, а в ответе было получено два адреса. Дело в том, что два различных компьютера работают как сервер WWW компании Microsoft и разделяют между собой трафик от клиентов. Если клиент не получает ответа по первому адресу (возможно, при сильной загруженности этой системы), он может обратиться ко второму компьютеру.
> nslookup
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
> set d2
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (67 bytes):
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: response, auth. answer, want recursion,
recursion avail.
questions = 1, answers = 2, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.6
Ответ локального сервера не содержит авторитетных записей и дополнительных сведений. Однако этот сервер получал авторитетность и дополнительную информацию от запрашиваемых им серверов и кешировал такие сведения.
При повторном запросе ответ придет из кеша локального сервера. Так как информация не авторитетна, локальный сервер предоставляет в ответе имена и адреса авторитетных серверов для microsoft.com.
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU
Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (194 bytes):
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: response, want recursion, recursion avail,
questions = 1, answers = 2, auth. records = 3, additional = 3
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.6
AUTHORITY RECORDS:
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = ATBD.MICROSOFT.COM
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 16
nameserver = DNS1.NWNET.NET
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = DNS2.NWNET.NET
ADDITIONAL RECORDS:
-> ATBD.MICROSOFT. COM
type = A, class = IN, ttl = 187111, dlen = 4
inet address = 131.107.1.7
-> DNS1.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.250.1
-> DNS2.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.251.1
Отметим, что в обоих запросах о www.microsoft.com. введена конечная точка. Если она опущена, запрос первоначально будет послан с добавленным в конец именем локального домена.
Это демонстрирует запуск запроса на компьютере Йельского университета, подключенном к cs.yale.edu. В следующем примере показаны происходящие при этом события. Запрос был отклонен, но далее автоматически переделан для исключения дополнительных обозначений в конце имени.
> www.microsoft.com
Server: DEPT-GW.CS.YALE.EDU
Address: 128.36.0.36
res_mkquery(0, www.microsoft.com.CS.YALE.EDU, 1, 1)
------
SendRequest(), len 47
HEADER:
opcode = QUERY, id = 6, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS :
www.microsoft.com.CS.YALE.EDU, type = A, class = IN
...
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Примеры
Примеры Этот раздел — своего рода «кулинарная книга» для программистов. Здесь я приведу ряд готовых примеров, которые вы сможете непосредственно использовать в качестве базиса для ваших проектов. Это не совсем готовые администраторы ресурсов — вы должны будете
5.12.5 Примеры
5.12.5 Примеры Программа на Рисунке 5.18 иллюстрирует искусственное использование каналов. Процесс создает канал и входит в бесконечный цикл, записывая в канал строку символов «hello» и считывая ее из канала. Ядру не нужно ни знать о том, что процесс, ведущий запись в канал,
12.18 Примеры
12.18 Примеры Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.Запрос требовал
Примеры
Примеры Теперь воспользуемся четырьмя только что написанными программами. Создадим очередь и поместим в нее три сообщения:solaris % msgcreate /tmp/no/such/fileftok error for pathname "tmp/no/such/file" and id 0: No such file or directorysolaris % touch /trap/test1solaris % msgcreate /tmp/test1solaris % msgsnd /tmp/test1 1 100solaris % msgsnd /tmp/test1 2 200solaris % msgsnd /tmp/test1 3
10.5. Простые примеры
10.5. Простые примеры В этом разделе мы напишем несколько простых программ, работающих с именованными семафорами Posix. Эти программы помогут нам узнать особенности функционирования и реализации семафоров. Поскольку именованные семафоры Posix обладают по крайней мере
Примеры
Примеры Для начала мы создадим именованный семафор в Digital Unix 4.0B и выведем его значение, устанавливаемое по умолчанию при инициализации:alpha % semcreate /tmp/test1alpha % ls-l /tmp/test1-rw-r--r-- 1 rstevens system 264 Nov 13 08:51 /tmp/test1alpha %semgetvalue /tmp/test1value = 1Аналогично очередям сообщений Posix система создает файл
Примеры
Примеры Теперь мы продемонстрируем работу пяти приведенных выше программ и исследуем некоторые свойства семафоров System V:solaris % touch /tmp/richsolaris % semcreate –e /tmp/rich 3solaris % semsetvalues /tmp/rich 1 2 3solaris % semgetvalues /tmp/richsemval[0] = 1semval[1] = 2semval[2] = 3Сначала мы создали файл с именем /tmp/rich, который
Примеры
Примеры Создадим объект разделяемой памяти с именем /tmp/myshm объемом 123 456 байт в системе Digital Unix 4.0B:alpha % shmcreate /tmp/myshm 123456alpha % ls –l /tmp/myshm-rw-r--r-- 1 rstevens system 123456 Dec 10 14:33 /tmp/myshmalpha % od –c /tmp/myshm0000000 *0361100Мы видим, что файл с указываемым при создании объекта разделяемой памяти
Примеры
Примеры Создадим сегмент разделяемой памяти длиной 1234 байта в системе Solaris 2.6. Для идентификации сегмента используем полное имя нашего исполняемого файла shmget. Это имя будет передано функции ftok. Имя исполняемого файла сервера часто используется в качестве уникального
15.7. Примеры
15.7. Примеры В этом разделе мы приведем примеры использования пяти только что описанных
* ПРИМЕРЫ *
* ПРИМЕРЫ * b1_1_1.cxx #include ‹stream.hxx›main(){ cout ‹‹ "Hello, world ";}
Примеры
Примеры Книга содержит множество примеров. Все примеры комментируются по мере их приведения, и все же кое-что следует пояснить заранее.Из приведенного выше примера с map видно, что я обычно опускаю директивы #include и игнорирую тот факт, что компоненты STL принадлежат
ПРИМЕРЫ
ПРИМЕРЫ while(n++ < 100) printf(" %d %d ",n, 2*n + 1);while(fargo < 1000){ fargo = fargo + step; step = 2 * step;} В нашем последнем примере в цикле while используется "неопределенное" условие: мы не знаем заранее, сколько раз выполнится тело цикла перед тем, как выражение станет ложным. Во многих наших
Примеры
Примеры Этот оператор устанавливает новое значение по умолчанию для домена BOOK_GROUP:ALTER DOMAIN BOOK_GROUP SET DEFAULT -1;В следующем операторе имя домена BOOK_GROUP заменяется на PUBL_GROUP:ALTER DOMAIN BOOK_GROUP TO
8.4.1 Примеры
8.4.1 Примеры Описаниеint i; int *pi; int f (); int *fpi (); int (*pif) ();описывает целое i, указатель pi на целое, функцию f, возвращающую целое, функцию fpi , возвращающую указатель на целое, и указатель pif на функцию, возвращающую целое. Осбенно полезно сравнить последние две. Цепочка *fpi() есть *(fpi()),