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

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

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

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

А исключение 10Ехсерг1оп, конечно, генерируется при ошибке чтения из потока, в зависимости от того, как организован ввод данных. Обработка исключений В приведенном виже примере программы демонстрируется обработка всевозможных сетевых исключений, которые могут возникнуть в связи с выполнением программы из предыдущего примера, в которую теперь добавлены соответствующие обработчики исклточеиий. // Пример обработки сетевых исключений.

ся1лс Буясекч ия1лс Буягеи.пегт Сасвексггувоггослб Кеера11чега11оге Репбапч Ргохунаиепеяо1сс1осга11нге Ргогосо1Еггог Весоеягсапсе1еб БессгеСЬалле1Га11нге Боссеяя ЦпкпоипЕггог Глава 2о. Сетевые средства подключения к Интернету 927 цз1пЗ Яузсеш.тбт с1азз ИеГЕхсбешо ( зсасас но1б Ма1п() ( зпс снт ггу ( // Сначала создать объект запроса типа ИеЬКеццезс по указанному ОК1. Нссрнепает)цезс гец = (НГГрнеЬКек)цезс) ИеЬКеццезГ.Сгеасе("Ьсср://ннн.мсбгам-Н111.сош"); // Затем отправить сформированный запрос и получить на него ответ. НссрнеЬКезропзе гезр (НссрИеЬКезропзе) геп.аегкезропзе М; // Получить из ответа поток ввода. Ясгеаш 1зсгш = гезр.ОеснезропзеЯГгеаш() /* А теперь прочитать и отобразить гипертекстовое содержимое, полученное по указанному ОК1.

Это солержимое выводится на экран отдельными порциями по 400 символов. После каждой такой порции следует нажать клавишу <ЕНТЕК>, чтобы вывести на экран следующую порцию, состоящую из 400 символов. */ тот(апг 1=14; 1+4) ( сп = 1зсгш. КеабНусе () ) те(сп == -1) Ьгеант Сопзо1е.Итаке ((сваг) сп) т 11((1%400)= О) ( сопзо1е.иг1ге("1пнажмите клавишу <епгег>.")т Сопзо1е.неаб11пе()т ) ) // Закрыть ответный поток. При этом закрывается // также поток ввода 1вггш. гезр.С1озе(); ) сассп(ИеЬЕхсерсаоп ехс) ( Сопзо1е.ыгасетапе("Сетевая ошибка: ехс.меззаде + "1пкод состояния: " + ехс.агагцз)) ) сассп(ргососо101о1ас1опЕхсерсаоп ехс) ( Сопзо1е.ыг1сеЕЕпе("Протокольная ошибка: " 4 ехс.мазза)те)т ) сассп(ОгатогшаГЕхсерсаоп ехс) ( Сопзо1е.ыг1се11пе("Ошибка Формата ОК1: " ч ехс.меззаое)т ) сагсь(ногяцрроггебехсергаоп ехс), ( сопзо1е.иг1ге11пе("неизвестный протокол.

"" + ехс.меззаде]т ) сассп(1ОЕхсерсаоп ехс) ( сопзо1е.игагетвпе("Ошибка ввода-вывода: " + ехс.Незвале)) ) сассп(Яузсеш.аесцгасу.Яесцгасуахсерсаоп ехс) ( Сопзо1е.ыгасе11пе("Исключение в связи с " + "нарушением безопасности: " + ехс.Меззаде)т 928 часть )). Библиотека Сз ) сагой(1пта11борегасгопЕхсерс1оп ехс) ( Сопяо1е.игъсеъгпе (" Недопустимая операция: " т ехс.иеязаое) т ) ) ) Теперь перехватываются все исключения, которые могут быть сгенерированы сетевыми методами. Так, если изменить вызов метода сгеасе () следующим образом: неопеццезс.сгеаге("атер://инн.испгаи-и111.сош/шоопгоскес")т а затем перекомпилировать и еще раз выполнить программу, то получится приведенный ниже результат.

Сетевая ошибка: Удаленный сервер возвратил ошибку: (404) Не найден. Код состояния: Ргососо1Еггог На веб-сайте по адресу нны.мсегаи-н111.сош отсутствует раздел шоопгоскес, и поэтому он не найден по указанному 1)В1, что и подтверждает приведенный выше результат. Ради краткости и ясности в программах большинства примеров из этой главы отсутствует полноценная обработка исключений.

Но в реальных приложениях она просто необходима. КЛаСС Огх Как следует из табл. 25.1, метод неЬпес(цезс. Сгеаге () существует в двух вариантах. В одном варианте он принимает идентификатор 1)К1 в виде строки. Именно этот вариант и был использован в предыдущих примерах программ. А во втором варианте этот метод принимает идентификатор 11К1 в виде экземпляра объекта класса цгъ, определенного в пространстве имен Еуз геш.

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

Тем не менее он может оказаться весьма полезным в более сложных ситуациях сетевого подключения к Интернету. В классе иг1 определяется несколько конструкторов. Ниже приведены наиболее употребительные конструкторы этого класса. рцьгьс Пгь(зкг1по пгх) рцв11с Пгг(цг1 Ьазе, лсг1пс ге1) В первой форме конструктора объект класса цг1 создается по идентификатору 1Ж1, заданному в виде строки. А во второй форме конструктора он создается по относительному 1)К1, заданному в виде строки ге1 относительно абсолютного 11К!, обозначаемого в виде объекта Ьаэе типа цг1.

Абсолютный 1)21 определяет полный адрес 1)К1, а относительный 1)К1 — только путь к искомому ресурсу. В классе цгъ определяются многие поля, свойства и методы, оказывающие помощь в управлении идентификаторами 1)К1 или в получении доступа к различным частям (1В1. Особый интерес представляют приведенные ниже свойства. Глава 25, Сетевые средстаа подключения к Интернету 929 Свойство Описание риЬ1гс яггтпд Нояг ( сегг ) рсптгс ягггпд Ьоса1Рагп ( дег," ) Получает имя сервера Получает локальный путь к файлу Риьтгс ясгтпз РяськппПпегу ( зесг ) получает абсолютный путь и строку запроса риЬ11с гпг Рогг ( сегг ) Получает номер порта для указанного протокола.

Так, для протокола НТТР номер порта равен 80 риЬ1гс зггтпд ()ыегу ( Пег) ) роЬ11с ягг1пд Яспеве ( сегг ) Получает строку запроса Получает протокол Перечисленные выше свойства полезны для разделения 1321 на составные части. Применение этих свойств демонстрируется в приведенном ниже примере программы. // Пример применения свойств из класса Пг1. пяспс Яуягепи мясом Яуясев.нес; с1аяя Пггрево ( ясясгс тога иягп() ( Пгг яявр1е = пеы Пгг("ЬССР://Негпзспггг(г.сов/яовеГ11е.гхгтзовейоегу")г Сопяо1е.игггеЬгпе("Хост: " + яавр1е.иояг); Сопяо1е.ыгггеЬгпе("Порт: " Ь яявр1е.РогС); Сопяо1е.игггеьапе("Протокол: " + завр1е.ясЬеве); Сопяо1е.игггеьтпе("Локальный путь: " + яавр1е.ьоса1Рагп)) Сопяо1е.ыгггеЬЬпе("Запрос: ." + яавр1е.()иегу)г сопяо1е.нггсеььпе("путь и запрос: " ь яавр1е.уасьапг(Пиесу)) ) ) Эта программа дает следующий результат: Хост: Негпзсп11г(г.сов Порт: ЗО Протокол: ЬССР Локальный путь: /яовет11е.гхг Запрос: Рзовейоегу Путь и запрос: /яовет11е.гхгтзовейоегу Доступ к дополнительной информации, получаемой в ответ по протоколу НТТР С помон(ью сетевых средств, имеющихся в классе нссрнеЬке зропяе, можно получить доступ к другой информации, помимо содержимого указываемого ресурса К этой информации, в частности, относится время последней модификации ресурса, а также имя серве)хс Она оказывается доступной с помощью различных свойств, связанных с получаемым ответом.

Все эти свойства, включая и те что, определены в классе иеьпеяропзе, сведены в табл. 25.5. В приведенных далее примерах прогрзмм демонстрируется применение этих свойств на практике. 930 Часть й. Библиотека С» Таблица 25.5. Свойства, определанна(в в классе нссрзтенаевропве Описание Получает название используемого набора символов Получает название схемы кодирования Получает описание содержимого роЬ11с Оагетсие Г,аягнос(111ес( ( цесг ) Получает время последней модификации ресурса Получает строку, которая задает способ ответа РоЬ1»с уегя»оп Ргагосо1оегясоп ( цесг Получает строку, обозначающую имя сервера риЫгс НССРЯСагоясоае Ясасоясог(е ( цесг роЫ»с ясггпц Получает строку, обозначающую состояние транзакции в удобоясасояоеясг1рс1оп ( цесг ) читаемой форме Доступ к заголовку Для доступа к заголовку с информацией, получаемой в ответ по протоколу НТТР служит свойство Неас(егя, определенное в классе НССрнеЬНеяропяе: риЬ»»с ИеЬНеаг(егсо11ессгоп Неаг(егя( цегг роЬ1гс ягггпц СЬагасСегЯеС ( цес; ) роЫ1с ягг1пц СопгепСЕпсог(1пц ( цеСГ ) рпЫгс 1опц СопгепСЬепцСЬ ( цес; ) роЫгс яггкпц Сопгепгтуре ( цесг ) рпЫгс СооКкеСо11есС1оп СооКгея ( цесг яесг ) роЫгс ХеЬНеааегСо11есггоп Неаг(егя( цег; ) рпЬ»тс Ьоо1 1яугоесаспе ( цес; ) роЫ1с Ьоо1 1яногпа11улоСЬепС»сагеа ( цес; ) риЬ11с яСггпц Мегпос( ( цес; ) риЫ»с Цг» Веропяепгг ( цесг ) роЫгс ясгспц Яегтег ( цес; ) Получает длину принимаемого содержимого.

Если она недоступна, свойство имеет значение -! Получает или устанавливает список соойе-наборов, присоединяе- мых к ответу Получает коллекцию заголовков, присоединяемых к стеву Иыеет логическое значение стае, если запрос получен из каша. А если запрос доставлен по сети, то имеет логическое значение та1яе Имеет логическое значение сгое, если клиент и сервер опозна- ют друг друга, в противном случае — имеет логическое значение га1яе Получает обьект типа нега гоп, описывающий версию протокола НТТР используемую в транзакции Получает () Н(, по которому был сформирован ответ.

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

Сопзо1е.игтсе11пе("(0,-20)(1)1п", "Имя", "Значение" ); тогеасЬ(зггьпч и Тп навез) ( Сопзо1е .Игтсе (" ( О, -20 ) ", и) т гогеась(зггтпч ч Тп гезр.неабегз.песча1пез(п)) Сопзо1е.ЙгтгеЬ1пе(ч)т // Закрыть ответный поток. гезр.С1озе()т ) Ниже приведен полученный результат. Не следует забывать, что информация в заголовке периодически меняется, поэтому у вас результат может оказаться несколько иным. Имя Тгапзтег-епсобьпс Сопсепг-Туре Пате Зегчег Значение сЬппнеб Гехт/Ьси1 Ггь, 27 дпп 2008 20:32:06 6МТ Зип-ОИЕ-ИеЬ-Зегчег/6.1 Заголовок протокола Н'ГГР состоит из пар "имя — значение", представленных строками. Каждая пара "имя-зиачеиие" хранится в коллекции класса ИеЬНеаг(егСО11есС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
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее