Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 69

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 69 страницаИскусство программирования на Си (984073) страница 692015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

АбСтраКтНЫЕ СЛОИ Это очень бширная тема, так что во всей полноте ,йгзстд?Л)Гоннкьфй,снрйн,—,,.зтй дууддкыияникнаык,гцупйа,фи)гшйыйь„,,озгаьлраор; еьби„а а...,,юмикгд ыпхь о Ю...,' ",„' Сь,. -",, " ',;"», '..„'",:;~',"';'",,:. "„„,'%,,";Г;„'?ь „, '. „',-:;,:"„,'!,...е . '„СГ)кьчьч"'":Ч ьсц', -'н "" ' "е 'Наг"." е б . Ке' ТСР/(Р— это двунаправленный протокол управления потоком на основе соединений.

Этот протокол гарантирует последовательное ос> шествление надежного (без ошибок) управления потоком данных. Каждый пакет распознается с использованием последовательности чисел внутри заголовка пакета. Проверка ошибок проводится с помощью алгоритма СВС (С|с!)с Кедцпдапсу Соде — контроль, осуществляемый с помощью циклического избыточного кода) в пакете. Это гарантир>ет, что пакет будет доставлен по назначению неповрежденным. Протокол И>Р— полная противоположность ТСР.

Для полдержания механизма передачи он требует больших усилий. Это просто означает, что пакеты могут прибывать беспорядочно, с ошибками и, в конце концов, могут вообще не прибыть. И хотя надежность ТСР не дается бесплатно, издержки $Л)Р довольно значительны. Применение сокетов ТСР, как правило, называется трехступенчатым установлением связей (3-ьчау нчадкьаЬ > .Я,атом,пдпцессгьнениший момпьюстепс д аэ тс не лучший способ пересылки сообщения. Она может быть поставлена в целости и сохранности. Может прибыть разорванной. Может прибыть на шесть месяцев позже срока отправки или, наконец, может потеряться в почтовой системе и никогда не прибыть.

Чтобы определить, какой метод является более подхоляшим для вашей программы, необходимо рассмотреть природу используемых ланных. Действительно ли каждый одиночный байт, а на самом деле каждый бит критичен? Можете ли вы позволить себе потерять какие-либо данные? Когда вы работаете с финансовыми или навигационными системами, то ответ на второй вопрос однозначен: "Нет". Но бывают случаи, когда ответом может быть "Да". Как насчет прямого воспроизведения вилео? В первую очередь при передаче вилео обращают внильание на скорость. Самое главное — быстро, насколько зто возможно, передать данные реального видео, чтобы обес- Я3— Доаоенитееы<ые теча то чесеиерач елы Л»ежк<ат4ормеоная разработки чрогро чмирооачие коим> ниеациоииы» средсто дяВД<»В Часть В1 Глава 22 ЙИИ даж за предыдущий лень по всем подчиненным магази- диться, что данные будут доставлены по назначению.

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

Этот разработаем решение лля У»<)босая. Эти решения очень номер называется камер<>м лар>ла. и ги ких дисков похожи, но не идентичны. Затем будет показано, как Требуется выбрать номер порта, который, скорее яуя>(урез.й — лля макроса Мова(), вуя/яос)»е1.Ь поддер- В действительности Функция яе!ес)Ц просто отслеживает можно упростить процесс подключения, написав абст- всего, не будет конфликтовать с программами, запуска- живает п тотипы лля ф н й с к т ' ()) дескрипторы файлов. В среде с>м>х значение О дескрилрактный слой для непереносимых частей программы. емыми на нашем компьютере. Номера портов хранятся в )6-битовом целом числе без знака, поэтому имеется Сокеты, испольэук)щие ТСР под зовов сокетов.

его я буквенный зквивалеит функции ЬЬЬИП. управлением 0М!Х числа в диапазоне от 0 до )023 предназначены для ре- чп1яС>1п яСО пСсоп1с С боле> зерна, однако их нельзя использовать для этой конкрет- 'б ' СЬ б1 (' С В' ) зпс ЯосХЫчлг чоИ зпСЬапб1пг(зпС ВСО) Требуется написать две пРогРаммы: сервер (программу, ной программы (в действительности на многих компь- зпс печ Ыые> ( котоРУю мы хотим запУстить на компьютеРе головного ютерах ис о ьзующих ())ч))Х вообще невозможно юте ах, использующих , воо ще невозможно боле = 1; офиса) и клиент (по олной копии которой будут уста- использовать эти номера, даже для прелназначенной лля ! новлены на ка:ялом полчиненном кол»пьютере).

Начнем них цели, если не зарегистрироваться в корневол» катаяпсх1еп С взп я)япые> с се ве а зпс СЬвсхупгваса( 1пС япсх)б! сЬаг баСа(255)ы(О); с сервера. логе системы). Когда выбирается номер порта или со( сЬаг *епбр> Программа ()нп(-сервера кета лля использования, следует проверить существую- яСгпсС С)ввча1 Сч; щую базу стандартов (оформленную в серию Ы явС гяаб Ы; Г)ЬВ *Ср> Меисеаали)нерменнанра роя те а лрасраммироеание натмунинааианнын среясо е яьоелояа(аев Ро, 2) ПП Доласнитаснные тематнчесниеран)асы $ с Часть )И Глава 22 гу(гр .= ВВЬЬ) Далее открывается сокет с помощью функции Если ассер(О все-такн вызывается, то это означает, яосйе(().

Эта функция возвращает дескриптор файла для что есть ожидающий обработки пакет. Поскольку кажвыполнения последующих обращений к библиотечным дое прина.гос и прочитанное соединение закрывается, ) ( саггеагеоеа1 = яегеоа1(даеа, аеас)р, 10)1 Функшим сокетов. то лолжно появиться новос соединение. Кроме того, мы Весь описанный процесс продолжается столько врс- ВОСК БТ)(ЕАМ указывает, что предпочтительно не позволяем старылс соелинениям существовать аоста- монн, сколько необходилю.

Нажав С(г)+С, пользователь этот сокет должен использовать механизм передачи точно долго, чтобы иметь возлюжность получить второй подает сигнал программе, что нужно остановиться. Рс1ояе(гр)1 ТСР, а не ()ПР. пакет. Так что функция ассер(О даст нале новь|й дсск- В этом месте обработчик сигналов устанавливает перс) риптор сокста для использования с этим новым сосди- лсенную контроля цикла лля того, чтобы цикл завершил е1яе ву авсгг.е1е Рта11у = ВР 1ХВРс ( ву алас.яьв аде)г.я аддг пением. Затем этот дескриптор сокета лсожно исполь- следукнций тест.

В данный момент можно закрыть прорг1ае(( Сооьс(а'Г геас) Ше Вя1а ву аддг.яьа роге = Веоая()ВЭ))1 зовать для передачи функции гестО„а буфер — для слушнвающий секет и записать данные в выходной Ргьеваве)1 вевяег(ву а извлечения Фактически поступивших данных. файл. ) ву ас)ог.я)а хего); После обрапщния к функции гест() мы получаем Чтобы пользователь мог легко остановить програлс- з( ((яоскгд = яосхег(лу гввт, воск втввли, му сервера, с помощью функции я(вва)() установим ° в)) == 1) кот проверить, где расположены данные и каков объем»ва11.)а*); обработчик прерываний. Строго говоря, единственное, ( принимаслсыл данных.

Последний параметр, для опре- Рр = (орел(Р11еааве, "е"); что позволяет стандарт т А)с(Я С делать в обработчике рггаг(( ваехресгес) еггог оа сделать в о ра отчике деленных Флагов в этом случае не нужен. Значение 0 гр((р ~= ВОЬЬ) < сиги лов (с учетом переносихсости), — изменить значс- позволит функции гестО использовать значения. при(рг1вь((гр, $1а)а , аемеоеа1); ние псрслсснной я(я а(оппс (. Так и сделаем. Модифи- нятые по умолчанию, которые лля наглого примера (с1ояе((р)р Ф Допптип есиные тематинесниеризде си Часть Ьч Листинг 22.2. Исходный код для []$[!Х-клиента ТСР $1пс1пае <яв01о.Ь> $1пс1пде <я1011Ь.Ь> А/етп атформеннон разрабтпка.

прснрпимирстанссе комн)пик аиионнык средств ят (гпсч(яоскгд, дава, яхяеог ааса, О) 1) СОКЕТЫ, ИСПОЛЬЗУЮЩИЕ ТСР ПОД управлением ][)[[прои/Б $1пс1пс[а <еггпо.Ь> гехпгп ВХ1Т ТА1ЬОВВ; Программы сокстов %]пс]охчя используют библиотеку $1пс1псе <Яхгзпс.в> ) АУ[лаос)с, которая очснь похожа, но, увы, нс илснтична $1п<1пае <ппСОЬ.Ь> $1пс1пде <пехгпав/1п.Ь> рггп ггпь(/ аесехчеса ая]п", баха); сокстам Беркли. К сожалению, в книга нст наста для $[яс1пде <яуя/яосвеС.Ь> описания вссл различий.

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

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

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

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