30.2. Альтернативы для клиента TCP

30.2. Альтернативы для клиента TCP

Мы уже обсуждали различные способы устройства клиентов, но стоит тем не менее еще раз обратить внимание на относительные достоинства и недостатки этих способов.

1. В листинге 5.4 показан основной способ устройства клиента TCP. С этой программой были связаны две проблемы. Во-первых, когда она блокируется в ожидании ввода пользователя, она не замечает происходящих в сети событий, например отключения собеседника от соединения. Во-вторых, она действует в режиме остановки и ожидания, что неэффективно в случае пакетной обработки.

2. Листинг 6.1 содержит следующую, модифицированную версию клиента. С помощью функции select клиент получает информацию о событиях в сети во время ожидания ввода пользователя. Однако проблема этой версии заключается в том, что программа не способна корректно работать в пакетном режиме. В листинге 6.2 эта проблема решается путем применения функции shutdown.

3. С листинга 16.1 начинается рассмотрение клиентов, использующих неблокируемый ввод-вывод.

4. Первым из рассмотренных нами клиентов, вышедшим за пределы ограничений, связанных с наличием единственного процесса или потока для обслуживания всех запросов, является клиент, изображенный в листинге 16.6. В этом случае использовалась функция fork, и один процесс обрабатывал передачу данных от клиента к серверу, а другой — в обратном направлении.

5. В листинге 26.1 используются два потока вместо двух процессов.

В конце раздела 16.2 мы резюмируем различия между перечисленными версиями. Как мы отметили, хотя версия с неблокируемым вводом-выводом является самой быстродействующей, ее код слишком сложен, а применение двух потоков или двух процессов упрощает код.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Конечные автоматы и альтернативы

Из книги Давайте создадим компилятор! автора Креншоу Джек

Конечные автоматы и альтернативы Я упомянул, что регулярные выражения могут анализироваться с использованием конечного автомата. В большинстве книг по компиляторам а также в большинстве компиляторов, вы обнаружите, что это применяется буквально. Обычно они имеют


Народные альтернативы

Из книги Журнал «Компьютерра» № 40 от 31 октября 2006 года автора Журнал «Компьютерра»

Народные альтернативы Автор: Киви БердСексуальные преступники-педофилы наряду с международным терроризмом уже давно выступают в качестве главного жупела, которым власти пугают обывателей и оправдывают всякое новое ограничение прав и свобод в Интернете. Но хотя


Альтернативы депонированию криптоключей

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

Альтернативы депонированию криптоключей Поддержка депонирования криптоключей — это не единственный способ предоставления государству доступа к информации. Другой подход — это использование слабой криптографии. При этом ключи должны быть достаточно короткими, для


8.6.2. Настройка клиента NFS

Из книги Цифровой журнал «Компьютерра» № 3 [11.1.2010-18.1.2010] автора Журнал «Компьютерра»

8.6.2. Настройка клиента NFS В предыдущем разделе было рассмотрено, как настроить сетевую файловую систему NFS. Теперь давайте рассмотрим как можно подмонтировать имеющуюся сетевую файловую систему к какому-либо клиенту. Напоминаю, что если на предполагаемом NFS-клиенте не


Онлайновые альтернативы Microsoft PowerPoint Андрей Крупин

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Онлайновые альтернативы Microsoft PowerPoint Андрей Крупин В том, что рано или поздно подавляющее число стационарных приложений мигрирует в Сеть, сомневаться не приходится. Уже сейчас набирают популярность cloud-технологии, ведутся разработки «облачных» веб-компьютеров и


Правило 35: Рассмотрите альтернативы виртуальным функциям

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Правило 35: Рассмотрите альтернативы виртуальным функциям Предположим, что вы работаете над видеоигрой и проектируете иерархию игровых персонажей. В вашей игре будут использоваться разные варианты сражений, персонажи могут подвергаться ранениям или иначе терять


Альтернативы ICQ

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Альтернативы ICQ Популярность интернет-пейджеров привела к возникновению целого ряда других клиентских программ. Официальный клиент ICQ от Mirabilis претерпел за время своего существования значительные изменения. Этот программный продукт уверенно двигался, если можно так


Альтернативы частичным функциям

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Альтернативы частичным функциям Один из технических приемов, используемый в этой лекции, мог вызвать удивление, - применение частичных функций. Он связан с неустранимой проблемой применения в некоторой спецификации не всюду определенных операций. Но являются ли


Альтернативы портам завершенияввода/вывода

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Альтернативы портам завершенияввода/вывода В главе 9 было показано, как использовать семафор для ограничения количества готовых к выполнению потоков, и этот же метод можно эффективно применять для регулирования пропускной способности в условиях, когда множество


13.4. Альтернативы read() и write()

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

13.4. Альтернативы read() и write() Несмотря на то что системные вызовы read() и write() как нельзя лучше подходят приложениям для извлечения и хранения данных в файле, все же они не всегда являются самыми быстрыми методами. Они допускают управление отдельными порциями данных; для


6.4. Альтернативы Internet Explorer

Из книги Удвоение продаж в интернет-магазине автора Парабеллум Андрей Алексеевич

6.4. Альтернативы Internet Explorer Internet Explorer — самый популярный браузер на сегодняшний день, его использует подавляющее большинство пользователей, однако кроме Microsoft есть другие компании, которые занимаются выпуском программ-браузеров. Рассмотрим лишь наиболее известные: Opera,


Повышение цен – альтернативы

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Повышение цен – альтернативы Никаких альтернатив! И вот почему. Мало кто из интернет-бизнесменов Рунета верит в действенность высоких цен. Большинство владельцев очень боятся встать на путь их повышения и никогда этого не делали.На самом деле покупатели


13.2. Настройка клиента DNS

Из книги Работа в Интернете. Энциклопедия автора Ташков Петр Андреевич

13.2. Настройка клиента DNS Разрешение имен на стороне DNS-клиента выполняет модуль распознавания (резолвер). В ОС Linux он представляет собой набор библиотечных функций. Конфигурационным файлом распознавателя служит /etc/resolv.conf, содержащий список DNS-серверов (от 1 до 3), которым


«Википедия» – живая энциклопедия и ее альтернативы

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

«Википедия» – живая энциклопедия и ее альтернативы «Википедия»«Википедия» (от англ. Wikipedia, образованного от гавайского wiki-wiki, что означает «быстро») – общедоступная, многоязычная и свободно распространяемая интернет-энциклопедия (рис. 5.11). Рис. 5.11. Главная страница


Альтернативы DNS

Из книги автора

Альтернативы DNS Можно получить информацию об имени и адресе без использования DNS. Типичной альтернативой служат статические файлы со списком узлов (обычно файл /etc/hosts, как мы указываем в табл. 11.2), информационная система сети (Network Information System, NIS) и упрощенный протокол службы