Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 186

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 186 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 1862019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

6гаи-НШ,61епсое/Мспгаи-Н111,ТЬе 6гои Несиогк/Мсбгаи-Н111,иасш111ап/Мссгаи- Нг11,Мспгаи-НШ Сопсешрогагу,мсбгаи-НШ 0161са1 Ьеагпапд,мсбгаи-Н111 Ргокевягопа1 Оене1оршепГ,БВА/Мспган-Н1 Ргеяв Епсег. 11,иг16ЬГ 6гооР/Мспгаи-Н111, Мсбгаи-НШ Н19Ьег Еопсас1оп,исбган-н111/ 1гигп,мсбгаи- НШ/Ргьш1в Сивкою РовагвЬ1пч,мс6гаи-Н111/Вуегвоп,Така/Мспгаи-Нг11,Мсбгаи- Нг11 гпсегашег1сапа,среп Сп1негвгсу Ргевв, Неа1гьсаге 1пгоппас1оп 6гоор, Р1аскв, Мсбгаин111 сопвггисг1оп, гптогшаг1оп а месга Бегч1сев" /> <мега паше="к(евсг1рс1оп" сопгепг="тье мсбгаи-нг11 сошрап1ев согрогаге НеЬв1се." /> <веса Ьсср-еяи1н="Соп Ргевв Епсег.

кепс-Туре" сопсепс="Гехс/Ьгш1т сьагяек=гво-8859-1"> <МЕТА НТТР-ЕООгн "Веггевь" СОНТЕНТ "900"> <МЕТА НТТР-ЕЯО1Ч="ЕХР1ВЕБ" СОНТЕНТ="-1"> <метл нттр-еООТч="Ргасша" сонтент="по-сасье"> <11пх ге1="всу1еяьеес" Ьгег="всу1евьеес.свв" гуре="Гехт/свв" шеова="всгееп,рго9есгг оп"> <11пн ге1="вгу1евьеег" Ьгег="рг1пс.свв" Гуре5еехс/свв" шесга="рггпс"> <всггрг 1апдоаде 5паназсггрг1.2" вгс="всг1ргв.5в"></всг1рг> Нажмите клавишу <Епсег>. Итак, выше приведена часть гипертекстового содержимого, полученного с веб-сайта издательства Мсбтатэ-Н!11 по адресу иии.

Мсбгаи-НШ . сош. В рассматриваемом здесь примере программы это содержимое просто выводится в исходном виде на экран посимвольно и не форматируется в удобочитаемом виде, как это обычно делается в окне браузера. 924 часть и. Библиотека Сз Проанализируем данную программу построчно. Прежде всего обратите внимание на использование в ней пространства имен зуз сев. Нею Как пояснялось ранее, в этом пространстве имен находятся классы сетевого подключения к Интернету. Обратите также внимание на то, что в данную программу включено пространство имен яуясев. 10, которое требуется для того, чтобы прочитать полученную с веб-сайта информацию, используя объект типа зсгеав.

В начале программы создается объект типа неЬнес)пеяс, содержащий требуемый ПК1. Как видите, для этой цели используется метод сгеасе (), а не конструктор. Это статический член класса неЬНес)оеяг. Несмотря на то что класс неЬНес(оеяг является абстрактным, это обстоятельство не мешает вызывать статический метод данного класса. Метод Бгеаке () воэвращает объект типа нссрнеЬНес)иеяг. Разумеется, его значение требуется привести к типу НССриеьцес(не як, прежде чем присвоить его переменной тес) ссылки на объект типа нссрнеЬНес)иеяю На этом формирование запроса завершается, но его еше нужно отправить по указанному 1) К1.

Для того чтобы отправить запрос, в рассматриваемой здесь программе вызывается метод Беснеяропяе () для объекта типа неьнес)оеяс. Отправив запрос, метод аеснеяропяе () переходит в состояние ожидания ответа. Как только ответ будет получен, метод Яесцеяропяе () возвратит объект типа ХеЬНеяропяе, в котором инкапсулирован ответ. Этот объект присваивается переменной геяр.

Но в данном случае ответ принимается по протоколу НТТР и поэтому полученный результат приводится к типу НггриеЬНеяропяе. Среди прочего в ответе содержится поток, предназначаемый для чтения данных из источника по указанному 1)К1. Далее поток ввода получается в результате вызова метода бегяеяропяезггеав() для объекта геяр. Это стандартный объект класса зсгеав со всеми атрибутами и средствами, необходимыми для организации потока ввода.

Ссылка на этот поток присваивается переменной 1ясгв, с помощью которой данные могут быть прочитаны из источника по указанному ПК1, как из обычного файла. После этого в программе выполняется чтение данных из веб-сайта издательства МсбгатчНВ1 по адресу кин. Мсагаи-Н111. сов и последующий их вывод на экрзи. А поскольку этих данных много, то они выводятся на экран отдельными порциями по 400 символов, после чего в программе ожидается нажатие клавиши <Епсег>, чтобы продолжить вывод.

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

Ответный поток следует закрывать в промежутках между последовательными запросами. В противном случае сетевые ресурсы могут быть исчерпаны, препятствуя очередному подключению к Интернету. И в заключение анализа рассматриваемого здесь примера следует обратить особое внимание наследующее:для отображения гипертекстового содержимого,получаемогоссервера, совсем не обязательно использовать объект типа НССриеЬНес)пеяг или НССриеЬНеяропяе. Ведь для решения этой задачи в данной программе оказалось достаточно стандартных методов, определенных в классах НеЬНес)оеяг и НеЬНеяропяе, и не потребовалось прибегать к специальным средствам протокола НТТР.

Следовательно, вызовы методов Бгеаге() и оеснеяропяе () можно было бы написать следующим образом: Глава 25. Сетевые средства подключения к Интернету 925 // Сначала создать объект запроса типа Хеонечпезс по указанному ПН1. Хеьпепиеяс геп = Хебвеппеяс.сгеаге("ЬГГр://иии.испган-п111.сои"); // Затем отправить сформированный запрос и получить на нето ответ. ХеЬКеяропяе геяр = геп.яеснеяропяе()~ В тех случаях, когда ие требуется приведение к конкретному типу реализации протокола, лучше пользоваться классами ИеЬНек(пеяс и ИеЬНезропзе, так как это дает возможность менять протокол, ие оказывая никакого влияния иа код программы. Но поскольку во всех примерах, приведенных в этой главе используется протокол НТТР, то в ряде примеров демонстрируются специальные средства этого протокола из классов НссриеЬНес(аеас и НссриеЬНезропзе.

Обработка сетевых ошибок Программа из предыдущего примера составлена верно, ио оиа совсем ие защищена от простейших сетевых ошибок, которые способны прелсдевремеиио прервать ее выполнение. Конечно, для программы, служащей в качестве примера, это ие так важно, как для реальных приложений.

Для полноценной обработки сетевых исключений, которые могут быть сгеиерироваиы программой, необходимо организовать контроль вызовов методов Сгеасе (), пег йеяропяе () и яескезропзеясгеаю() . Следует особо подчеркнуть, что геиерироваиие коикрегиых исключений зависит от используемого протокола. И ниже речь пойдет об ошибках, которые могут возникнуть при использовании протокола НТТР, поскольку средства сетевого подключения к Интернету, доступные в С(), рассматриваются в настоящей главе иа примере именного этого протокола.

Исключения, генерируемые методом Скеа~е () Метод Сгеасе (), определенный в классе ХеЬНек(пезс, может генерировать четыре исключения. Так, если протокол, указываемый в префиксе БК1, ие поддерживается, то генерируется исключение Хогяпррогсес)яхсерс1оп. Если формат ПК1 оказывается недействительным, то генерируется исключение Нг1рогюасяхсерГ1оп. А если у пользователя иет соответствующих полномочий для доступа к запрашиваемому сетевому ресурсу, то генерируется исключение яуя Сею. яеспг1Гу.

яеспг1суяхсерсфсп. Кроме того, метод сгеаге () генерирует исключение Агппюепсхп11ехсерс1оп, если ои вызывается с пустой ссылкой, хотя этот вид ошибки ие имеет непосредственного отношения к сетевому подключению. Исключения, генерируемые методом Ое~йеарое1ве () При вызове метода яебцезропзе() для получения ответа по протоколу НТТР может произойти целый ряд ошибок. Эти ошибки представлены следующими исключениями: 1пча11с(Орегаг1опяхсерГ1оп, Ргососо1Ч1о1аГ1опяхсерГ1оп, Хобяпррогсес(яхсерс1оп и ИеЬЕхсерГ1оп.

Наибольший интерес среди иих вызывает исключение ИеЬЕхсерГ1оп. У исключения ХеЬЕхсерГ1оп имеются два свойства, связанных с сетевыми ошибками: неяропзе и ягагпз. с помощью свойства незропзе можно получить ссылку иа объект типа ХеЬНезропзе в обработчике исключений. Для соединения по протоколу НТТР 926 Часть )!. Библиотека С» этот объект описывает характер возникшей ошибки. Свойство Ееяропяе объявляется следующим образом: рсЫас Иеьпеяропяе Хеяроляе ( Чест Когда возникает ошибка, то с помощью свойства Бсаьая типа иеьехсерс1оп можно выяснить, что именно произошло. Это свойство объявляется следующим образом: рсЫас иеЬЕхсерп1опзгасся Бгагся (Чею ) где ИеЬЕхсерс1опзсагпя — это перечисление, которое содержит приведенные ниже значения.

СоппессъопС1ояеб Соппесгга11оге МеяяасетелЧСЬЪаю1СЕхсеебеб Иаюекеяо1иггопГа11иге Ртре11лега11нге Кесегаега11оге ВеснеясггоЫЫСебэусаснеро11су ПессеясргоЫЫГебэургоху Бепбга11сге т1иеосс Бегчегргогосо1С1о1аг1оп тгияСГа11оге Как только будет выяснена причина ошибки, в программе могут быть предприняты соответствующие действия. Исключения, генерируемые методом ( еФЗ,езрое1зеЗ~геат () Для соединения по протоколу НТТР метод СеьееяропяеБсгеаю() из класса ИеЬЕеяропяе может сгенерировать исключение Рготосо1уъо1аС1опЕхсерС1оп, которое в целом означает, что в работе по указанному протоколу произошла ошибка. Что же касается метода яегееяропяеБггеаю (), то это означает, что ии один из действительиых ответных потоков недоступен. Исключение ОЬбестввярояебЕхсерт1оп геиерируется в том случае, если ответ уже утилизировав.

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

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

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

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее