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

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

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

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

НССрнеЬКес)оеяС геЧ = (НССрнеЬКеяг(еЯС) ИеЬКеяоеяС.Сгеаее(пггятг)) ог1згг = по11: // запретить дальнейшее использование етого ОК1 О Отправить сформированный запрос и получить на него ответ. геяр = (НССрнеЬКеяропяе) геЧ.Оегяеяропяе()) // Получить поток ввода из принятого ответа. 1032 Часть 11. Библиотека 0№ Богеаш 1зггш = геяр,ОепеезропяеБГгеаш()) // Заключить поток ввода в оболочку класса ЯпгеашНеабег. Богеашаеабег гбг = пен Яогеашаеабег(гягпв)) Прочитать всю страницу. яог = гбг.кеабтоЕпб()) спг1ос = О) бо ( // Найти следующий ОЕ1 для перехода по ссылке. 11пк = Г1пб11пк(ясг, гес спг1ос)) 11(11пк != по11) Сопяо1е.кггпеЬгпе("Найдена ссылка: " + 11пк) Сопяо1е.нггпе("Перейти по ссылке, Искать дальше, Выйти?" ) апвнег = Сопяо1е.ееаб11пе(); 11(згг1пЧ.ЕЧоа1з(апзнег, "П", ЯпггпоСошрагсяоп.огб1па11спогесаяе)) ( сгаяпг = ясгфпц.Сору(11пк)) Ьгеак) ) е1*е 11(япг1пс.Ес(па1я(апянег, "В", БоглпцСошрагбяоп.огбепа11дпогеСаяе)) ( Ьгеа)с) ) е1зе 11(згг1по.ес(ча1в(апянег, "и", БоглпцСошраг1яоп.огб1па11дпогеСаяе)) ( Сопяо1е.иг1се11пе("Поиск следугщей ссылки.") ) ] е1зе ( Сопзо1е.кгтсеаапе("Больше ссылок не найдено.") Ьгеа)с) ) ) ни11е(11пК.ЬепсГЬ > О); // Закрыть ответный поток, 11(геяр != пп11) гевр.С1ояе(); ни11е(ог1япг != пп11); ) сассь(иеьехсерггоп ехс) ( сопяо1е.игльеь1пе("сетевая ошибка: " + ехс.меяяасе + "1пкод состояния: " + ехс.ягагся); сассЬ(ргооосо1оао1аобопЕхсеролоп ехс) Сопяо1е.йглгеЬ1пе("Протокольная ошибка: " + ехс.Меяяаое)) сапсЬ(сгг№опяаГЕхсерпгоп ехс) ( сопяо1е.иглсеь1пе("Ошибка формата пет: " + ехс.меяваде)) ] сапсЬ(иоГЯпррогпебЕхсерп1оп ехс) ( сопяо1е.нг1сеь1пе("неизвестньят протокол: " + ехс.меязаде)) сассЬ(1ОЕхсерслоп ехс) ( Сопяо1е.иг1сеЬ1пе("Ошибка ввода-вывода: " т ехс.Незвале)) ) 11па11у ( 11(гезр != пп11) гевр.с1ове(); ) Глава 26.

Сетевые средства подключения к Интернету ЮЗЗ Сопяо1е.вггое11пе ("Завершение программы М1пгогам1ег. ") г ) ) Ниже приведен пример сеанса поиска, начиная с адреса ммм. МсПга и-Н 111. сов. Следует иметь в виду, что конкретный результат поиска зависит от состояния содержимого на момент поиска. Переход по ссылке Ьггр://в<оган-Ь111.сов найдена ссылка: Ьсср:!йс1.волгам-Ь111.сов:9000/с91-Ьгп/чоегуувяя=яеагсьарч=ай Перейти по ссылке, Искать дальше, Выйтит И Поиск следукшей ссылки. Найдена ссылка: Воср:/угптеяяог.всчгам-нг11.сов/рьоепгх.хьгв12с=96562ар=гго1-1гнове Перейти по ссылке,.Искать дальше, Выйтит П переход по ссылке ьсср:Огптеясог.почтам-ь111.сов/рьоепгх.яьгв12с=96562ар=гго1-ггьове Найдена ссылка: Ьггр://ммн.всчгам-Ь111.сов/1псех.нов1 Перейти по ссылке, Искать дальше, Выйтиз П Переход по ссылке Ьггр://ммм.всчган-Ь111.совЯпг)ех.ьгв1 найдена ссылка: ьсср://ясг.всчган-ь111.сов:9000/<91-ьгпучоегузвяя=яеагсььрч=ай Перейти по ссылке, Искать дальше, Выйти".

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

Этот метод вызывается со строкой содержимого и исходным положением, с которого начинается поиск в полученном содержимом. Эти значения передаются методу Г1пг)11пх () в виде параметров ьгв1ясг и ясаг11ос соответственно. Обратите внимание на то, что параметр ясагс1ос относится к типу геу. Сначала в методе р1пс)11пх () создается копия строки содержимого в нижнем регистре, а затем осуществляется поиск подстроки Ьге г="ЬЬ Ьр, обозначающей ссылку. Если эта подстрока найдена, то !)Е! копируется в строковую переменную пг1, а значение параметра ягагс1ос обновляется и становится равным концу ссылки. Но поскольку параметр я гагг1ос относится к типу ге1, то это приводит к обновлению соответствующего аргумента метода Маап (), активизируя поиск с того места, где он был прерван. В конечном итоге возвращается значение переменной ог1.

Эта переменная инициализирована пустым значением, и поэтому если ссылка не найдена, то возвращается пустая ссылка, обозначающая неудачный исход поиска. Если ссылка, возвращаемая методом р1пОЬЕПК ( ), не является пустой, то она отображается в методе Маап (), и далее программа запрашивает у пользователя очередные действия. Пользователю предоставляются одна из трех следующих возможностей: перейти по найденной ссылке, нажав клавишу <П>, искать следующую ссылку в имеющемся содержимом, нажав клавишу <И>, или же выйти из программы, нажав клавишу <В>. Если пользователь нажмет клавишу <П>, то программа осуществит переход по найденной ссылке и получит новое содержимое по этой ссылке. После этого поиск 1034 Часть 11.

Библиотека С№ очередной ссылки будет начат уже в новом содержимом. Этот процесс продолжается до тех пор, пока не будут исчерпаны все возможные ссылки. В качестве упражнения вы сами можете усовершенствовать программу МппСгату!ег, дополнив ее, например, возможностью перехода по относительным ссылкам. Сделать это не так уж и трудно. Кроме того, вы можете полностью автоматизировать поисковый робот, чтобы он сам переходил по найденной ссылке без вмешательства со стороны пользователя, начиная со ссылки, обнаруженной на самой первой странице полученного содержимого, и продолжая переход по ссылкам на новых страницах. Как только будет достигнут тупик, поисковый робот должен вернуться на один уровень назад, найти следующую ссылку и продолжить переход по ссылке.

Для организации именно такого алгоритма работы программы вам потребуется стек, в котором должны храниться идентификаторы УК) и текущее состояние поиска в строке (3Е(. С этой целью можно, в частности, воспользоваться коллекцией класса есас)г. В качестве более сложной, но интересной задачи попробуйте организовать вывод ссылок в виде дерева. Применение кйасса ЯеЬС1~еп~ рчЬ11с ХеЬС11епС() Кроме того, в классе ИеЬС11епс определяются свойства, сведенные в табл. 26.6, а также целый ряд методов, поддерживающих как синхронную, так и асинхронную передачу данных.

Но поскольку рассмотрение асинхронной передачи данных выходит за рамки этой главы, то в табл. 26.7 приведены только те методы, которые поддерживают синхронную передачу данных. Все методы класса ХеЬС11епС генерируЮт исклЮчение ХеЬЕхсергсоп, если во время передачи данных возникает ошибка. Таблица 2В.В. Свойства, определенные в классе ХеЬС11епС Свойство Описание рпЬ11с всг1по Ваведг(с(геев ( пест весг ) Получает или устанавливает базовый адрес требуемого ()й). Если это свойство установлено, то адреса, задава- емые в методах класса хеЬс11епс, должны опреде- ляться относительно этого базового адреса Получает или устанавливает правила, определяющие, когда именно используется кэш' Получает или устанавливает мандат, т.е.

учетные дан- ные пользователя. По умолчанию это свойство имеет пустое значение Получает или устанавливает схему кодирования симво- лов при передаче строк рпЬ11с ЕечпевССасиеро11су Сасперо11су ( оеС; веС; рпЬ11с 1Сгег(епС1а1в сгес)епс1а1в ( пес г вес," ) рпЬ11с Епсос)1пгт Епсос)1по ( песг вес; ) В заключение этой главы уместно рассмотреть класс иеЬс11епс. Как упоминалось в самом ее начале, класс ИеЬС11епС рекомендуется использовать вместо классов ХеЬКес(певС и ИеЬЕевропве в том случае, если в приложении требуется лишь выгружать или загружать данные из Интернета.

Преимущество класса ИеЬС11епС заключается в том, что он автоматически выполняет многие операции, освобождая от их программирования вручную. В классе ИеЬС11епС определяется единственный конструктор. Глава 26. Сетевые средства подключения к Интернету 1035 Окончание табл. 2б.б Свойство Описание рпЫдс ХеЬНеабегСо11ессдоп Неабегз( дегг зеЫ ) рпЬ11с Ьоо1 15Нпзу( дЕСГ ) Получает или устанавливает коллекцию заголовков за- проса Принимает логическое значение сгсе, если данные по-прежнему передаются по запросу, а иначе — логи- ческое значение Г515е Получает или устанавливает прокоп-сервер рпЬ11с 1неЬРгоху Ргоху ( дег; зегг роЫдс НаглеЧ51пеСо11ес51оп СоегуБгг1пд ( дегг зеЫ Получает или устанавливает строку запроса, состоящую из пар "имя-значение", которые могут быть присоединены к запросу. Строка запроса отделяется от 0Я! символом?.

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

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

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

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