Вход/Регистрация
UNIX: разработка сетевых приложений
вернуться

Стивенс Уильям Ричард

Шрифт:

15-21
Функция
recvfrom
ждет следующую дейтаграмму UDP, предназначенную нашему сокету. Когда она приходит, мы помещаем в конец буфера пустой байт, исправляем порядок байтов заголовка и выводим адрес отправителя пакета и хэш SAP.

Проверка заголовка SAP

22-34
Мы проверяем заголовок SAP, чтобы убедиться, что он относится к одному из тех типов, с которыми мы умеем работать. Пакеты SAP с адресами IPv6 в заголовках, а также сжатые и зашифрованные пакеты мы не обрабатываем.

Поиск начала и вывод анонса

35-39
Мы пропускаем аутентифицирующие данные и тип пакета, после чего выводим содержимое оставшейся части.

В листинге 21.7 показано несколько типичных примеров результата выполнения нашей программы.

Листинг 21.7. Типичный анонс SAP/SDP

freebsd % mysdr

From 128.223.83.33:1028 hash 0x0000 v=0

o=- 60345 0 IN IP4 128.223.214.198

s=UO Broadcast - NASA Videos - 25 Years of Progress

i=25 Years of Progress, parts 1-13. Broadcast with Cisco System's

IP/TV using MPEG1 codec (6 hours 5 Minutes; repeats) More information

about IP/TV and the client needed to view this program is available

from http://videolab.uoregon.edu/download.html

u=http://videolab.uoregon.edu/

e=Hans Kuhn <multicast@lists.uoregon.edu>

p=Hans Kuhn <541/346-1758>

b=AS:1000

t=0 0

a=type:broadcast

a=tool:IP/TV Content Manager 3.2.24

a=x-iptv-file:1 name y:25yop1234567890123.mpg

m=video 63096 RTP/AVP 32 31 96

c=IN IP4 224.2.245.25/127

a=framerate:30

a=rtpmap:96 WBIH/90000

a=x-iptv-svr:video blaster2.uoregon.edu file 1 loop

m=audio 31954 RTP/AVP 14 96 0 3 5 97 98 99 100 101 102 10 11 103 104 105 106

c=IN IP4 224.2.216.85/127

a=rtpmap:96 X-WAVE/8000

a=rtpmap:97 L8/8000/2

a=rtpmap:98 L8/8000

a=rtpmap:99 L8/22050/2

a=rtpmap:100 L8/22050

a=rtpmap:101 L8/11025/2

a=rtpmap:102 L8/11025

a=rtpmap:103 L16/22050/2

a=rtpmap:104 L16/22050

a=rtpmap:105 L16/11025/2

a=rtpmap:106 L16/11025

a=x-iptv-svr:audio blaster2.uoregon.edu file 1 loop

Этот анонс описывает рассылки, посвященные истории NASA (National Aeronautics and Space Administration — НАСА, государственная организация США, занимающаяся исследованием космоса). Описание сеанса SDP состоит из множества строк следующего формата:

type=value

где

type
всегда является одним символом, значение которого зависит от регистра, a
value
— это структурированная текстовая строка, зависящая от значения
type
. Пробелы справа и слева от знака равенства недопустимы.
v=0
(в нашем случае) обозначает версию (version).

o=
обозначает источник (origin). В данном случае имя пользователя не указано, 60345 — идентификатор сеанса, 0 — номер версии этого сеанса,
IN
— тип сети,
IР4
— тип адреса,
128.223.214.198
— адрес. В результате объединения этих пяти элементов — имя пользователя, идентификатор сеанса, тип сети, тип адреса и адрес — образуется глобально уникальный идентификатор сеанса.

s=
задает имя сеанса (session name), а
i=
— это информация о сеансе (information).
u=
указывает URI (Uniform Resource Identifier — уникальный идентификатор ресурса), по которому можно найти более подробную информацию по тематике данного сеанса, а
р=
и
e=
задают номер телефона (phone number) и адрес электронной почты (e-mail) ответственного за данную конференцию.

b=
позволяет оценить пропускную способность, необходимую для приема данного сеанса.

  • Читать дальше
  • 1
  • ...
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: