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

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 208

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

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

НССрнеЬНеяропяе геяр = (НССРХеЬНеяропяе) гея.оетнеяропяе()) // Получить из ответа поток ввода. 5ггеаш 1ятгш = геяр.БетнеяропяеВСгеаш() /* А теперь прочитать и отобразить гипертекстовое содержимое, полученное по указанному ПН1. Зто содержимое выводится на экран отдельными порциями по 400 символов. После каждой такой порции следует нажать клавишу <ЕХТЕК>, чтобы вывести на экран следугег/ю порцию иэ 400 символов.

*/ тот(1пт т=1;; 1++) ( сЬ = Тятпп.кеасвуге(); 11(сЬ == -1) Ьгеа)ы Сопяо1е.нттте((ссаг) сЬ)) 11((га400)==0) ( Сопяо1е.нгсте("1пНажмите клавишу <Ептег>."); Сопяо1е.неабьфпе()) ) Закрыть ответный поток. При этом закрывается также поток ввода 1ятгш. тевр.С1озе(); ) ) Ниже приведена первая часть получаемого результата.

(Разумеется, это содержимое может со временем измениться в связи с обновлением запрашиваемого веб-сайта, и поэтому у вас оно может оказаться несколько иным.) <Ьтпц > <Ьеаб> <слс1е>ноше — тсе мспган-нШ сошраптея</с1с1е> <шеСа паше="кеунотбя" сопеепт="Мсоган-НШ Сошраптея,мсоган-Нт11, Мсоган НШ, Лч1ат1оп Хеет, Вцятаеяянеет, 5Сапбагб апб Рооп'я, 5Сапбагт а Роог'я,СТВ/МсотанН111, 01епсое/МсПтан-Н111, Тле Бгон Хетнотт/Мсотан-Н111,масш111ап/Мсоган-Н111, Мсоган-Н111 Соптешрогату, Мсотан-Н111 0101та1 Ьеатптпд, Мсотан-Н111 Ртогеяя1опа1 Пече1оршепт,зял/Мсоган нажмите клавишу <епсег>. -Н111,нг10ЬС Пгоцр/Мсоган-Н111,мсоган-Н111 Нтвнег Еоцсагтоп,мсоган — НШ/ттнтп, Мсотан-Н111/Рг1штя Сцятош РцЬ11яЬ1пП,Мсоган-Н111/Нуегяоп,таеа/Мсоган-Н111, 1020 Часть (!. Библиотека С(г Мспгам-Н111 1пгегаеегьсапа,ереп Нпгжегв1Су Ргеев, Неа1ССсаге 1пгоппаггоп Отпер, Р1аССв, Мспгам-Н111 СопвггпсСьоп, 1пб>гвагьоп Ь Мебьа Бегт1сев" /> <мега паве="Оевсгьргьоп" сппгепС="тье Мсогам-Н111 Соерапгев СогрогаСе ИеЬв1Се." /> <мега СССР-еЧп1т Нажмите кпавгвпу <Епсег>.

Итак, выше приведена часть гипертекстового содержимого, полученного из вебсайта издательства МССгазу-Н)!! по адресу ммм. Мссгам-Н111. совс В рассматриваемом здесь примере программы это содержимое просто выводится в исходном виде на экран посимвольно и не форматируется в удобочитаемом виде, как это обычно делается в окне браузера. Проанализируем данную программу построчно. Прежде всего обратите внимание на использование в ней пространства имен Буегет. Нег.

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

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

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

мсБгам-Н111. согл и последующий их вывод на экран. А поскольку этих данных много, то они выводятся на экран отдельными порциями по 400 символов, после чего в программе ожидается нажатие клавиши <Еп(ег>, чтобы продолжить вывод. Благодаря этому выводимые данные можно просматривать без прокрутки экрана. Обратите внимание на то, что данные читаются посимвольно с помощью метода Не а<(Бусе ( ) . Напомним, что этот метод возвращает очередной байт из потока ввода в виде значения типа гпс, которое требуется привести к типу сьаг.

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

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

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

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

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

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

Эти ошибки представлены следующими исключениями: 1пна11бОрегапгопЕхсерс1оп, Ргогосо1УТо1а11опЕхсер11оп, носэпрроггебЕхсергйоп и ИеЬЕхсерггоп. Наибольший интерес среди них вызывает исключение иеЬЕхсерсгоп. У исключения ИеЬЕхсер11оп имеются два свойства, связанных с сетевыми ошибками: кеяропяе и Бсаспя. С помощью свойства кеяропяе можно получить ссылку на объект типа ИеЬКеяропяе в обработчике исключений. Для соединения по протоколу НТТР этот объект описывает характер возникшей ошибки.

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

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

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

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