Главная » Просмотр файлов » В. Столлингс - Современные компьютерные сети (2-е издание, 2003)

В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681), страница 164

Файл №1114681 В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (В. Столлингс - Современные компьютерные сети (2-е издание, 2003)) 164 страницаВ. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681) страница 1642019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 164)

В этой структуре содержится информация об ивтенах хоста, его псевдонимах и 1Р-адресах. Эти данные получаются из 1)ЫЯ или из локальной базы данных. Функция деЬевйупап)е() определяет номер порта, ассоциированный со службой, имя которой указывается в качестве аргумента. Если вместо него указывается численное значение, оно напрямую преобразуется в двоичное значение и используется как номер порта.

Обратите внимание на то, что список Ь аббт 1)вб содержит 1Р-адреса, ассоциированные с хостом: //1(бе/ И1И //тлс1ибе <нтпбоыз,П> // для всех функций И1пзосд //епб1 Г (/)/бе( ВВР //1пс1ибе «пеббЬ.П> // для структуры Позтепт 1)епб1Г зггист Поз(опт Яреббозгоупаае(сопят сПаг >Поз(пате); Для обнаружения хостов, служб, протоколов или сетей могут использоваться следующие функции: дебреегпатеО, дебйодбЬудббгО, дебрю)Ьупал)еО, дебрюуоЬупиглЬетО десргосоелбО, десзевЬупагпеО, детзевЬураттО, де(девепЦ), десне(ЬупагпеО, де(лей)упип)ЬетО дебпебепбО. 718 Приложение Б.

Сокеты Б.4. Элементы пакетов 719 Ниже приводится пример обращения к функции детйоз(Ьупал)еО: ф1(бе( В50 (/!пс)ибе <зум(урез.П> !! для типа сабг С //епб1/ фбеы пе БЕКУ ИАМЕ зовелозт.з(пес(врапу.сощ //бе(тпе РСКТ ИОН 1050 // праизвопьний номер порта /ыег!пе п аббг и атыг 1!в([01 // для хранения интернет-адресов хостов зггист заскаббг !п щупозт аббг: /! Интернет-адрес локального хоста зтгист позып( <пр; // для хранения инфарнации об удаленнон хосте Мс гак з; !! дескриптор удаленного сонета // часть програиии.

специфическая для ЬИ1Х Ьтего((спаг *)Бщуиозт аббг. з1зео((шулозт ай)г)): // часть програими. специфичесная дпя И1пбсщз шевкет(йщупозс атЫг. О, зтгеат!щупал( аббг)): // заполнить структуру адресной инфориацией об удапеннаи сервере l/ и установить соединение с сервером щупозт аббг.з1п тащ11у - АЕ 1КЕТ: // используеное сеиейство адресов щупозт аббг.з1п(югт = Птспз(РОК) ИОН): /! испальзуеиий нанер порта тт (Пр = депцоз(Ьупаще(НТ ИЛИЕ) — Н)[Е) // вивести сообщение об ошибке и прекратить работу // часть програнми. специфическая для СИ[Х Поору(Пр->П папе.

(сПаг *)йвулозт а(Ыг.з1п аббг, Пр- П 1епд(П); // часть програини, специфическая для Н1пймз щевсру(дщулозт а(Ыг.з1п атЫг, Пр->П атЫг. Пр->П 1епдСП): 1((соппесцгпщ з.(зтгис( засйаббг *)йяу)юы ай1г. з(зео((щупая( аббг))1-О) !/ внвести сообщение сб ошибке и прекратить работу Функция Ьтего() операционной системы [Лч)1Х обнуляет буфер укаэанной длины. Это одна из функций, работавшая с массивами н байтами.

Функция Ьсоруо копирует указанное количество байтов из одного буфера в другой. Функция ЬслтрО сравнивает указанное количество байтов в двух буферах. Функций операционной системы [Лч)1Х Ьгего() и Ьсору() нет в тч/[п([огиз, поэтому вместо них следует использовать функции п)еп)зетО и п)еп)сруО. Нрилтер программы с использованием сокетов для получения 1Р-здреса хоста для данного имени хоста приведен ниже: (Ыег!пе И!И !/ НТИ для И1пзосй и В50 для сакетав 050 !)1Пс1ибе <з(гпо.П> !/ нувно яля ргтпс(() !)тпс1ибе <збб1тЬ.П> // пушно дпя ехт(О Втгю1ибе <з(г1пд.П> // нувно дпя шепсру() и зтгсру() //1ббет И1И (/)пс1ибе <н1пбое.П> // нуею для И!плоск //епбт( Й(бег В50 фтпс1ибе <зуз!(урез.П> // пушно для идентификаторов.

определяених систеной //!Пс1ибе <пе(1пе(/1П.П> // нушно для структурн интернет-адресов (/!Пс1ибе <апра/1пет.п> !! пушно дпя !пег п(аа() //1пстит)е <зуз/зссхеь.п> // нувна для зосхет(). ьтпб() и т, д. //1пс)ибе <Гспг1.П> //1пс)ибе <тетбЬ П> //Епбт ( тото ша1п(1п( агдс. спаг +агру[1) ( ))1(бе/ И1И ИОИО щуегзтопкециезгеб - идкптбк0(1,1); /! для функций НБА ИБАОАТА нзаОата: // для функций Ьбя фапбт( зсгист позгепв "тюзт; // структура для дегпозгьупаве() зтгист 1п а!Ыг аббгезз: !! структура для Интернет-адресов сПаг Паз( паше[256): // строка для ииени х(юга 1( (агдс 1- 2) ( рппг((" сшиБКА - неверное нсличество аргументов в коиандной страке1п"): рг1пт((" фарнат коианднай строки: 'детаббг Паз( паве'Тп"); ех1(( 1); ))1Гбе( И1И // Инициализация иблзосй ИБд5таг(ир(иуегзтопйециезтеб.

йтзаОа(а): Вепбтт // Копировать иия хоста в Паз( паве зсгсруйюзт паве, агдт[Ц). рг1псц" Войск 1Р-адреса для люта 'тз'.. дп". пояс пвще): поз( дегпозть)пщяеспазт пете): !/ Печать результата поиска 1т Сиад( — Н)Е ) рг1пт((" Не удается найти 1Р-адрес хоста 'тз' )п'. Поят паве): е1зе щевсру(йаббгезз. Поз(->п атЫг. 4): рг1пгг( 1Р-адрес хоста ттз': тз )п", поз( пщяе, !пес пгоа(аббгезз)); ) фттбеу И1И /! Очистить итпзасд Ь5АС1еапир(): (/епб(Г Прослушивание входящих запросов на соединение от клиентов Функция [тзбеп() используется на сервере в модели обмена данными на основе соединений, для того чтобы подготовить секет к приему сообщений от клиентов. Определение функции йз[еп() выглядит следующим образом: 1л( 11з(еп(1пт зб. !пт О)еп): 720 Приложение Б.

Соквты + зя? — дескриптор сокета после вызова функции Ь)пб(); + /??еп — максимальное число входящих запросов на установку соединения, которые могут ждать в очереди на обработку, пока сервер занят. Функция 1)збеп() возвращает целое число, равное О, в случае успеха и — 1 в случае ошибки. Например: 1/ ()1згеп(зб. 5) 0) ( // вывести сообщение об сшибке и прекратить работу Согласие на установку соединения с клиентом Ф нкция эссерах) используется на сервере в модели обмена данными на основе унк соединений (после обращения к функции 1)абеле), для того чтобы удовлетворить запрос на установку соединения, поступивший от кпиента: (/бе/1пе И)И // ЩИ Лпл Едпзоси и ВВВ лля сокетов ВВВ У1/бе/ ИИ У)пс)цбе <и!пбонз.п> // лля всех функций и1пзося фепб11 //1/бе/ ВЯ) я1пс)цбе <зуз/(урез.ь> (/1пс)цбе <зуз/зсскев.и> // Лпя стРУктули зосйаббг //епб11 МС ассерт(1пг зегчег з, зтгцсв зосйаббг * спел( аббг, 1пс * с)псаб(/г )еп) + ююет з — дескриптор сокета, прослушиваемый сервером; + сйепс гк/л(г — адрес клиента; + с!ппиЫг !еп — длина адресной структуры клиента.

В случае успеха функция ассерс() возвращает целое число, представляющее новый сокет, и — 1 в случае ошибки. П бращения к функции эссерах) удовлетворяется первый стоящий в очеосле о , что и в1 С реди входящий запрос и создается новый сонет с теми же свойствами, что и этого момента для общения с данныля клиентом сервер будет использовать этот сокет.

В результате многократных обращений к функции соппесЬО мы получим ляного новых сокетов. Пример использования функции эссерах): звгцсв зосиаббг 1п с) 1епг аббг; шг зегчег з, с)1епс з, супьаббг )еп; 11 ((с) 1епс з - ассерг(зегчег з, (зсгцст зосйаббг *)ас)1епг аббг ас) пваббг )еп) < б) // вивести сообщение об сшибке и прекратить работу // на вгои этапе погон или процесс пожег получить // управление и взять на себя общение с клиенток При последующих обращениях функция эссерах) вернет другие соединенные сокеты.

Этн соединенные сокеты мультиплексируются на том же порту сервера функциями работающего стека протокола ТСР. Б.4. Элементы сокетоа 721 Передача и прием сообщений через сокет В данном разделе мы представим только четыре функции. В действительности существует больше способов отправки н приема данных через сокеты. Для сокетов ТСР/1Р, как правило, используются функции зепб() и гесч(): 1ПЬ ЗЕПЩ1ПС ЗССЛЕГ. СОПЗГ ЧО1б ЯШЗд. иш1ЦПЕб (ПЬ Лщд )Елд(Ь.

)П( Г)адя). 1ПЬ ГЕСЧ(1ПЬ ЗССЯЕС, Чпяб *ГСЧ Ьил/, ЦПЗГЦПЕб МГ Ьи/Г /ЕПдг/ч ЯПС Падя) . + зосйег — локальный сокет, используемый для функций зепб() н гесч(); + /пзя — указатель на сообщение; + п)зя ?епвтЬ вЂ” длина сообщения; + вы/ Ьп// — указатель на буфер приема; + Ьи// ?епфй — длина буфера. + /?паз — флаги, изменяющие повеление функции по умолчанию. Например, чтобы указать, что сообщение должно быть отправлено без данных локальных таблиц маршрутизации (по умолчанию онн используются), может быть задано определенное значение флагов. Для сокетов 131)Р, как правило, используются следующие функции; 1пг зев)го(1пг зосяеь, попас чо1б ьшзд.

цгз1цпвб )пс лед )епдсь. 1ы ладя, ззгцсг зосйаббг >без( аббг. цпз1цпеб 1пг аббг )епдсл); 1пс гесч/гош(1пт зосаег, чозб *гсч ьи/б цпзгцпв) 1гь ьцп /епд(ь. н с г)адз. зсгцсс зоскаббг *згс аббг. цгзгцпеб 1пг аьб~ )епдгщ; Болыпинство параляетров этих функций совпадает с параметрами функций зепб() и гесч(), кроме параметров г?явг а/Ыг/ыс асЫг и ая?г?г ?еп/(гй. В отличие от потоковых сокетов, при отправлении и получении дейтаграмм с помощью перечисленных функций необходимо указывать адрес удаленного компьютера.

Б следующих разделах будет предоставлен пример программ для ТСР/1 Р н 1)Е)Р клиента н сервера, где будут приведены примеры вызовов всех четырех функций. Закрытие сокета Прототип функции закрытия сокета выглядит следукпцим образом: 1пс с)озезосяет()пс зб): // прототип Ебпбонз Ш( с)озе(1пс гб): // прототип ВВВ ИИ(Х Параметры/я? и зг? прелставляют собой дескриптор файла (аналог дескриптора сокета в (ЛчПХ) и дескриптор сокета. Когда сокет надежного протокола (например, ТСР/1Р) закрывается, ядро продолжает попытки передачи данных, н соединение переходит в состояние Т1 М 1 (Я/й11 (см.

Характеристики

Тип файла
DJVU-файл
Размер
11,23 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее