Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Разработка сетевых приложений

Покупка
Артикул: 769624.01.99
Доступ онлайн
120 ₽
В корзину
Изложены основы разработки сетевых приложений, базирующихся на клиент/серверной модели. Даны основные понятия и логические основы компьютерных сетей. Рассмотрены: организация распределенных многопроцессных и многопоточных приложений; средства синхронизации потоков и процессов. Приводятся методы и средства межпроцессного обмена данными (сокеты. удаленный вызов процедур, логические каналы). Показаны примеры построения функциональных расширений WWW-сервера на основе интерфейсов CGI и ISAPI.
Кручинин, В. В. Разработка сетевых приложений : учебное пособие / В. В. Кручинин. - Томск : Томский государственный университет систем управления и радиоэлектроники, 2013. - 120 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/1845904 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Федеральное агентство по образованию 

 

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ 

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) 

 
 

Кафедра промышленной электроники 

 
 

В.В. Кручинин 

 
 
 

 

 

РАЗРАБОТКА СЕТЕВЫХ  

ПРИЛОЖЕНИЙ 

 
 
 

Учебное пособие 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

2013

 
 
 
 
 
 
 
 
 
 
 
 
 
 
Кручинин В.В. 
Разработка сетевых приложений: Учебное пособие. — Томск: 
Томский государственный университет систем управления и радиоэлектроники, 2013. — 120 с. 

 
 
Изложены основы разработки сетевых приложений, базирующихся 

на клиент/серверной модели. Даны основные  понятия и логические основы компьютерных сетей. Рассмотрены:  организация распределенных многопроцессных и многопоточных приложений; средства синхронизации потоков и процессов. Приводятся методы и средства межпроцессного обмена 
данными (сокеты, удаленный вызов процедур, логические каналы) Показаны примеры построения функциональных расширений WWW-сервера  на 
основе интерфейсов CGI и ISAPI. 

 
 
 
 
 
 
 
 
 
 

                                                                                      Кручинин В.В., 2013 

                                                                            ТУСУР, 2013

ОГЛАВЛЕНИЕ 

 

ВВЕДЕНИЕ .......................................................................................... 6 

1 КОМПЬЮТЕРНЫЕ СЕТИ. ОСНОВНЫЕ                                  

ОПРЕДЕЛЕНИЯ............................................................................... 7 
1.1 Структура сети ............................................................................ 7 
1.2 Протоколы ................................................................................... 9 
1.3 Адреса и имена ......................................................................... 11 
1.4 Основные протоколы транспортного уровня UDP и TCP ... 12 
1.5 Основные службы TCP/IP........................................................ 12 
1.6 Порт ............................................................................................ 13 

2 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРНЫХ  

СЕТЕЙ ............................................................................................. 14 
2.1 Модель клиент/сервер .............................................................. 14 
2.2 Операционные системы ........................................................... 16 
2.3 Серверное программное обеспечение .................................... 17 
2.4 Клиентское программное обеспечение .................................. 20 

3 ПРОГРАММНЫЕ ИНТЕРФЕЙСЫ .............................................. 21 

3.1 Сокеты ........................................................................................ 21 

3.1.1 Основные понятия .............................................................. 21 
3.1.2 Основные функции API сокетов ....................................... 24 
3.1.3 Простейшая реализация модели клиент/сервер              

на основе сокетов ............................................................... 25 

3.1.4 Описание API-winsock2 ..................................................... 27 

3.2 Каналы (Pipes) ........................................................................... 34 

3.2.1 Создание каналов ............................................................... 34 
3.2.2 Создание соединения с помощью именованных           

каналов ................................................................................ 36 

3.2.3 Передача данных по именованному каналу .................... 38 
3.2.4 Простейший пример ........................................................... 38 

3.3 Удаленный вызов процедур (RPC — remote call procedure) .... 40 

3.3.1 RPC для открытых систем ................................................. 40 
3.3.2 RPC для Windows ............................................................... 41 

3.3.2.1 Подготовка сервера к соединению ............................. 43 
3.3.2.2 Обслуживание клиентских вызовов ........................... 46 
3.3.2.3 Соединение клиента с сервером ................................. 46 

3.3.2.4 Создание  дескриптора соединения ............................ 47 
3.3.2.5 Вызов удаленной процедуры ...................................... 48 
3.3.2.6 Нахождение серверной программы ............................ 49 
3.3.2.7 Передача параметров от клиентского приложения 

серверному .................................................................... 49 

3.3.3 Пример создания  сетевого приложения                                                

на основе RPC Windows .................................................... 50 

3.3.3.1 Определение интерфейса ............................................. 51 
3.3.3.2 Генерация  UUID .......................................................... 52 
3.3.3.3 IDL файл ........................................................................ 52 
3.3.3.4 Файл конфигурации ..................................................... 53 
3.3.3.5 Генерация файла заглушки .......................................... 54 
3.3.3.6 Клиентское приложение .............................................. 55 
3.3.3.7 Серверное приложение ................................................ 58 
3.3.3.8 Завершение работы сервера ........................................ 60 

4 МНОГОПОТОЧНЫЕ ПРИЛОЖЕНИЯ ........................................ 62 

4.1 Процессы ................................................................................... 62 
4.2 Потоки (Thread)......................................................................... 66 
4.3 Синхронизация потоков ........................................................... 69 
4.4 Атомарный доступ .................................................................... 70 
4.5 Критические секции ................................................................. 71 
4.6 Синхронизация потоков в системном режиме ...................... 73 

4.6.1 События (Events) ................................................................ 76 
4.6.2 Ожидаемые таймеры .......................................................... 78 
4.6.3 Семафоры ............................................................................ 80 
4.6.4 Мьютексы ............................................................................ 81 

4.7 Пулы потоков ............................................................................ 82 

4.7.1 Очередь асинхронных вызов функций ............................. 83 
4.7.2 Использование порта завершения ввода/вывода ............ 83 
4.7.3 Пример организации пула потоков .................................. 85 

5 ПРОСТЕЙШЕЕ СЕТЕВОЕ  ПРИЛОЖЕНИЕ,                      

ОСНОВАННОЕ НА СОКЕТАХ ................................................... 88 
5.1 Сервер ........................................................................................ 88 
5.2 Клиентское приложение .......................................................... 91 

6 РАЗРАБОТКА СЕТЕВЫХ ПРИЛОЖЕНИЙ                                             

НА ОСНОВЕ WWW-СЕРВЕРА ................................................... 94 
6.1 Обзор технологий ..................................................................... 94 

6.2 Программирование CGI-скриптов .......................................... 97 

6.2.1 Описание интерфейса ........................................................ 97 
6.2.2 Взаимодействие WWW-сервера и CGI-программы ..... 100 
6.2.3 Переменные среды о сервере .......................................... 101 

6.3 Программный интерфейс ISAPI ............................................ 106 
6.4 Фильтры IIS ............................................................................. 112 

ЗАКЛЮЧЕНИЕ ................................................................................ 118 

ЛИТЕРАТУРА ................................................................................. 119 
  

ВВЕДЕНИЕ 

 

Развитие современных  технических устройств  не мыслим 

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

Данный курс «Разработка сетевых приложений» предназна
чен для изучения основ и принципов создания сетевого програ 
ммного обеспечения, базирующегося  на клиент/серверной модели. 

Данный курс базируется на курсах «Информатика», «Про
граммирование», «Технологии программирования», «Базы данных», «Компьютерные сети», «Основы вычислительной техники», «Операционные системы», «Введение в интернет» 

Курс имеет следующую структуру: 
1. Основные  понятия и логические основы компьютерных 

сетей. 

2. Организация распределенных многопроцессных и много
поточных приложений.  

3. Средства синхронизации потоков и процессов. 
4. Средства межпроцессоного обмена данными (сокеты, 

удаленный вызов процедур, логические каналы). 

5. Структура и простой пример организации клиент/сервер
ного приложения. 

6. Построение функциональных расширений WWW-сервера  

на основе интерфейсов CGI и ISAPI. 

Для изучения данного курса необходимо знание и наличие 

практических навыков программирования на языке программирования С++ для операционной системы MS Windows. 

 
 

 

1 КОМПЬЮТЕРНЫЕ СЕТИ. ОСНОВНЫЕ                                

ОПРЕДЕЛЕНИЯ 

 
1.1 Структура сети 
 
Компьютерная сеть  это совокупность компьютеров и дру
гих устройств, соединенных  с помощью  средств телекоммуникации с целью эффективной обработки данных и разделения ресурсов [14]. На рис. 1 показаны основные элементы компьютерной сети. 

 

 

Рис. 1 — Структура компьютерной сети 

 
Компьютерная сеть состоит из рабочих станций,  серверов, 

сетевого оборудования, различных устройств (принтер, плоттер, 
и пр.) 

Рабочая станция это, как правило, персональный компьютер 

на котором работает клиент (пользователь компьютерной сети). 

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

Подсеть  — компьютерная сеть, входящая в другую компь
ютерную сеть. 

По назначению выделяют: 
 файл сервер — предназначен для хранения и архивации 

файлов; 

 сервер печати — предназначен для управления одним или 

несколькими принтерами; 

 почтовый сервер — предназначен для хранения и обра
ботки электронной почты; 

 факс сервер предназначен для управления одним или не
сколькими факсами; 

 телефонный сервер обычно обеспечивает связь между те
лефонной сетью и сетью Интернет;  

 прокси сервер — предназначен для обеспечения эффек
тивной работы клиента в сети (например,  в Интернет через прокси-сервер все пользователи некоторой локальной сети могут 
иметь доступ в Интернет используя один IP-адрес); 

 сервер удаленного доступа  обеспечивает доступ к ком
пьютерной  сети через модемные или другие линии связи; 

 сервер приложений  сервер, обеспечивающий выполне
ние специфических программ, необходимых для конкретной 
группы пользователей; 

 игровой сервер  обеспечивает выполнение сетевых игр; 
 веб сервер обеспечивает доступ и манипулирование 

HTML-документами в сети Интернет. 

 сервер баз данных  обеспечивает доступ и манипулиро
вание к базам данных. 

Сетевые устройства: 
 хабы (hub)  предназначены для организации рабочей 

группы; 

 мосты (bridge)   предназначены для соединения  двух 

сегментов сети и локализации трафика в пределах каждого из 
них; 

 переключатели (switch)  предназначены для  соединения 

нескольких сегментов локальной вычислительной сети; 

 маршрутизатор (роутер)   предназначен для объединения 

нескольких сетей различной конфигурации. 

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

 Локальные сети (LAN, Local Area Network).  
 Территориальные сети (MAN, Metropolitan Area Network).  
 Глобальные вычислительные сети (WAN, Wide Area Net
work).  

По типу сетевой топологии встречаются: 
 Шина.  
 Звезда.  
 Кольцо.  
 Решётка.  
 Смешанной топологии.  
По архитектуре сети распределяют на: 
 одноранговые (peer-to-peer),  все компьютеры в сети оди
наковые; 

 клиент/сервер, когда часть компьютеров являются серве
рами, а другая – клиентами.  

Модель взаимодействия «клиент/сервер» предполагает, что 

сервер находится в пассивном состоянии ожидания запроса клиентов. Клиент находится в активном состоянии, инициирует обращение к серверу на обслуживание. Затем клиент ждет ответа на 
посланный запрос, в то время как последний обрабатывается сервером. 

 
1.2 Протоколы 
 
Протоколом в компьютерных сетях называют набор правил 

для специфического типа связи. 

Для обеспечения обмена данными между узлами сети необ
ходимо выполнить следующие действия: 

1) произвести пакетирование данных; 
2) определить пути пересылки данных; 
3) осуществить физическую пересылку; 
4) регулировать скорости пересылки данных; 

5) обеспечить полную сборку полученных данных, без поте
рянных частей; 

6) осуществить проверку полученных данных на наличие 

дублированных фрагментов; 

7) информировать отправителя о том, сколько было успешно 

передано данных; 

8)  обеспечить пересылку данных в нужное приложение; 
9) произвести обработку ошибок. 
В результате выполнения этих операций программное обес
печение существенно усложняется. Разбивая соответствующие 
действия  по уровням, и записывая их в виде правил, получаем 7 
уровневую модель  взаимосвязи открытых компьютерных сетей 
(OSI): 

 

Уровень
Определение
Протоколы

Физический
Обеспечивает передачу 
информации в виде физических сигналов


ISDN


RS-232

Канальный
Обеспечивает формирование и передачу 
кадров


Ethernet


Token ring


Fibre Channel


HDLC

Сетевой
Обеспечивает управление передачей пакетов 
через промежуточные 
узлы сети


ICMP


IP


IPX

Транспортный 
Обеспечивает управление передачей данными 
между оконечными 
пунктами компьютерной сети 


SPX


TCP


UDP


RTCP

Сеансовый

Презентационный

Прикладной

Обеспечивают  поддержание сеанса связи, 
позволяя приложениям 
взаимодействовать 
между собой длительное время. 


DNS


FTP


Gopher


HTTP


IMAP


IRC


LDAP


NTP


NNTP

Доступ онлайн
120 ₽
В корзину