Разработка клиент серверного приложения
Содержание
Введение
. Теоретическая часть
.1 Понятие «Сетевое программное
обеспечение»
.2 Категории сетевого программного
обеспечения
.2.1 ПО управления сетевой платой
.2.2 ПО выполняющее правила (или
протокол) общения в сети
.2.3 ПО сетевой операционной системы
. Практическая часть
Заключение
Список литературы
Введение
Сфера информационных технологий является на
сегодняшний день наиболее динамически развивающейся областью науки и техники,
что приводит к расширению поля их применения в человеческой деятельности.
Значительную часть современных информационных технологий составляют сетевые
технологии и их более глобальное проявление - Internet-технологии.
Цель работы: является разработка клиент
серверного приложения в среде программирования Borland
Builder C++
с использование сокетов.
Практическая часть:
Задача, которая будет решаться в программной
среде Borland
Builder C++.
Для выполнения работы использовались следующие
программы:
. Среде программирования Borland
Builder C++.
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
.1 Понятие «Сетевое программное обеспечение»
Компьютерные сети, называемые также
вычислительными сетями, или сетями передачи данных, можно определить следующим
образом. С одной стороны, как частный случай распределенных вычислительных
систем, в которых группа компьютеров согласованно выполняет набор
взаимосвязанных задач, обмениваясь данными в автоматическом режиме, а с другой
- как средство передачи информации на большие расстояния с использованием
методов кодирования и мультиплексирования.
Таким образом, компьютерная сеть - это
совокупность компьютеров, соединенных линиями связи. Линии связи образованы
кабелями, сетевыми адаптерами и другими коммуникационными устройствами,
называемыми сетевым оборудованием. Все сетевое оборудование работает под
управлением системного и прикладного программного обеспечения.
Взаимодействие между компьютерами сети
происходит путем передачи сообщений через сетевые адаптеры и каналы связи. С
помощью этих сообщений один компьютер обычно запрашивает доступ к локальным
ресурсам другого компьютера. Таким ресурсом может являться, например,
вычислительная мощность компьютера в целом.
В качестве совместно используемых ресурсов часто
выступают данные, хранящиеся на диске, а также разнообразные периферийные
устройства: принтеры, модемы, факс-аппараты и т.д.
Разделение локальных ресурсов каждого компьютера
между всеми пользователями сети - основная цель создания компьютерной сети. На
тех компьютерах, ресурсы которых должны быть доступны всем пользователям сети,
необходимо добавить модули, которые постоянно будут находиться в режиме
ожидания запросов, поступающих по сети от других компьютеров. Обычно такие
модули называются программными серверами (server), так как их главная задача -
обслуживать (serve) запросы на доступ к ресурсам своего компьютера. На
компьютерах, пользователи которых хотят получать доступ к удаленным ресурсам и
передавать их по сети на нужный компьютер, также необходимо установить
дополнительные модули. Такие модули обычно называют программными клиентами
(client). Сетевые адаптеры и каналы связи решают в сети задачу передачи
сообщения с запросами и ответами от одного компьютера к другому, основную же
работу по организации совместного использования ресурсов выполняют клиентские и
серверные части операционных систем.
Пара модулей «клиент-сервер» обеспечивает
совместный доступ пользователей к определенному типу ресурсов. Термины «клиент»
и «сервер» используются для обозначения не только программных модулей, но и
компьютеров, подключенных к сети. Если компьютер предоставляет свои ресурсы
другим компьютерам сети, то он называется сервером, а если он их потребляет -
клиентом. Иногда один и тот же компьютер может выполнять роль как сервера, так
и клиента.
В самом простом случае связь компьютеров может
быть реализована с помощью тех же самых средств, которые используются для связи
компьютера с периферийными устройствами. Для этого в компьютере предусмотрены
интерфейсы, или порты, т.е. наборы проводов, соединяющих компьютер с
устройствами, а также наборы правил обмена информацией по этим проводам. Для
того чтобы компьютер мог работать в сети, его операционная система (ОС) должна
быть дополнена клиентским и (или) серверным модулем, а также средствами
передачи данных между компьютерами. В результате такого добавления ОС
компьютера становится сетевой. Схема взаимодействия программных компонентов при
связи двух компьютеров представлена на рис.1.
рис. 1
Развитие теории компьютерных сетей является
логическим результатом эволюции двух важнейших научно-технических отраслей
современной цивилизации - компьютерных и телекоммуникационных технологий.[1, с.
4-5]
.2 Категории сетевого программного обеспечения
.2.1 ПО управления сетевой платой
Первый компонент может состоять из одной или
нескольких небольших программ. Он отвечает за наведение мостов между сетевой
платой и стеком протокола.
.2.2 ПО выполняющее правила (или протокол)
общения в сети
ЛВС (локальные вычислительные сети) бывают двух
основных типов: равноправные (или одноранговые) и с выделенным сервером. В равноправной
локальной сети все узлы равноправны: любая РСТ(равноправная сеть) может
выступать по отношению к другой как клиент или как сервер. В сети с выделенным
сервером все клиенты общаются с центральным сервером.
Одноранговые сети обычно легко устанавливать, и
для их ОС не требуется выделять особый компьютер. С другой стороны, эти сети
обладают меньшими функциональными возможностями по сравнению с сетями на основе
выделенного сервера. В частности, проблемы централизованной защиты ресурсов и
данных в таких сетях часто не разрешимы, так как каждый пользователь сам
контролирует доступ к своей системе. По мере роста размеров таких сетей они
быстро становятся неуправляемыми.
Равноправные СОС( сетевые операционные системы)
хороши для мелких сетей и идеальны в случае необходимости объединения лишь
нескольких машин в целях коллективного применения специальных файлов и
принтеров, когда не требуется централизованного администрирования. Но иногда
доступ к некоторым ресурсам должен быть представлен лишь определенным пользователям
и администратору требуется управлять такими ресурсами. Например, к
определенному ресурсу должен быть организован централизованный доступ, в
частности для организации "общего котла" модемов или принтеров. В
этих случаях лучше обратиться к сети с выделенным сервером. В таких сетях один
или несколько компьютеров организуют централизованный доступ к своим ресурсам.
Все запросы от РСТ проходят через серверы. Компьютер, используемый в качестве
сервера, должен быть как можно более мощным и надежным. [3, с.132]
ПО сервера обеспечивает централизованное
администрирование и защиту и управляет доступом к ресурсам при помощи
реконфигурируемых бюджетов пользователей. Администратор сети контролирует эти
бюджеты и определяет, что должен видеть и делать пользователь,
зарегистрированный в сети. Локальные сети с выделенным сервером обычно сложнее
в установке по сравнению с одноранговыми, но они мощнее, функционально
многообразнее и поддерживают крупные сетевые системы.
Наиболее популярным сетевым ПО с выделенным сервером
является ОС Novell NetWare, используемая, по некоторым оценкам, в 70% локальных
сетей. К числу других широко известных СОС этого класса относятся Banyan Vines,
IBM LAN Server для OC/2, DEC Pathworks для VAX и Windows NT, а также Microsoft
Windows NT Server.
.2.3 ПО сетевой операционной системы
Сетевые операционные системы помогают
осуществлять основные работы, проводимые в сети:
· файловая поддержка (создание, поиск
файлов);
· коммуникации (взаимообмен данными);
· услуги поддержки оборудования.
Сетевые операционные системы могут базироваться
на операционных системах MS DOS, OS/2, Unix, Macintosh, Windows или на своих
собственных операционных системах. Но вне зависимости от операционной системы,
на которой базируется сетевая операционная система, они предоставляют средства
обеспечения безопасности данных путем контроля прав доступа пользователей к
рабочим программам, массивам данным и ресурсам сети.
Остальные компьютеры являются рабочими
станциями, имеющими доступ к дискам файл-сервера и совместно используемым
принтерам. С терминала каждой рабочей станции нельзя работать с дисками других
рабочих станций. С одной стороны, это хорошо, так как пользователи изолированы
друг от друга и не могут случайно повредить чужие данные, с другой стороны, для
обмена данными пользователи вынуждены использовать диски файл-сервера, создавая
для него дополнительную нагрузку.
Существуют, однако, специальные программы,
работающие в сети с централизованным управлением и позволяющие передавать
данные непосредственно от одной рабочей станции к другой, минуя файл-сервер,
например NetLink. После ее запуска на двух рабочих станциях можно передавать
файлы с диска одной станции на диск другой, аналогично тому, как копируются
файлы из одного каталога в другой при помощи программы Norton Commander. На
рабочих станциях должно быть установлено специальное программное обеспечение,
часто называемое сетевой оболочкой. Это обеспечение работает в среде той ОС,
которая используется на данной рабочей станции, - DOS, Windows, OS/2 и т. д.
Файл-серверы могут быть выделенными
<#"784253.files/image002.gif">
Рисунок 1.Создание сервера
Рисунок 2.Подключение Клиента
Рисунок 3.Обмен сообщения с клиентом
Листинг программы сервера
//---------------------------------------------------------------------------
#include
<vcl.h>
#pragma hdrstop
#include <winsock.h>
#include <iostream>
#include <list>
#include <fstream.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma argsusednamespace
std;wsadata;server_socket;buff[1024];::list<SOCKET> clients;WINAPI
ClientPool(LPVOID param)
{ SOCKET client_socket =
(SOCKET)param;(true)
{bytes = recv(client_socket,
&buff[0], sizeof(buff), 0);("client: %s\n", buff);
} return
0;/*bytes_recv;client_socket;_socket = (SOCKET)param;( (bytes_recv =
recv(client_socket,&buff[0],sizeof(buff),0)) && bytes_recv !=SOCKET_ERROR)
{printf("client: %s\n",
buff);::list<SOCKET>::iterator it;(it = clients.begin();
it!=clients.end(); ++it)((*it), buff, bytes_recv, 0);}
*/("disconnect\n");(client_socket);0;}main()
{WSAStartup(MAKEWORD(2,2),&wsadata);_socket
= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);_IN server_addr;_addr.sin_family =
AF_INET;_addr.sin_port = htons(6666);_addr.sin_addr.s_addr =
INADDR_ANY;(server_socket,(SOCKADDR*)&server_addr,
sizeof(server_addr));(server_socket, 10);("Server start\n");(true)
{_IN client_addr;len_client_addr =
sizeof(client_addr);client = accept(server_socket, (struct
sockaddr*)&client_addr, &len_client_addr);("New
connection\n");.push_back(client);ThreadID;hThread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)ClientPool,
{(&buff[0],sizeof(buff),stdin);(client,
buff, strlen(buff)-1,0);
}
}0;
}
//---------------------------------------------------------------------------
Клиентское приложение выполняет подключение к
серверу и обмен с ним сообщениями.
Рисунок 4.Подключение к серверу
Рисунок 5.Обмен сообщениями с клиентом
Листинг программы Клиент
//---------------------------------------------------------------------------
#include
<vcl.h>
#pragma hdrstop
#include <winsock.h>
#include <iostream>
#include <list>
#include <stdlib.h>
#include <stdio.h>
#include <fstream.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma argsusedwsadata;client_socket;buff[1024];WINAPI
ServerPool(LPVOID param)
{server_socket =
(SOCKET)param;(true)
{bytes = recv(server_socket,
&buff[0], sizeof(buff), 0);("server: %s\n", buff);
}0;
}main()
{(MAKEWORD(2,2),&wsadata);_socket
= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);_in dest_addr;_addr.sin_family =
AF_INET;_addr.sin_addr.s_addr = inet_addr( "127.0.0.1"
);_addr.sin_port = htons(6666);(connect(client_socket,
(SOCKADDR*)&dest_addr, sizeof(dest_addr)))("Not connect\n");printf("Connect\n");ThreadID;hThread
= CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ServerPool,
(void*) client_socket, 0,
&ThreadID);(1)
{(&buff[0],sizeof(buff),stdin);(client_socket,
buff, strlen(buff)-1,0);
}0;
}
//---------------------------------------------------------------------------
Заключение
клиент
серверный программирование
В ходе выполнения данной курсовой работы изучены
сокеты и их применение в программировании для передачи сообщений по сети. Так
же были изучены компоненты для реализации сокетов в программных кода среды
программирования Borland
Builder C++.
Список литературы
1. Программное
обеспечение компьютерных сетей: Учебное пособие / О.В. Исаченко. - М.: ИНФРА-М,
2012. - 117 с
2. http://professia.org/seti/251/2_5_1.%20HTML.html
3. Информатика
в экономике: учебное пособие / под ред. Б.Е. Одинцова, А.Н. Романова. М.:
Вузовский учебник, 2008. - 478 с
. Компьютерная
обучающая программа по дисциплине «Информатика» / А.Н. Романов, В.С. Торопцов,
Д.Б. Григорович, Л.А. Галкина, А.Ю. Артемьев, Н.И. Лобова, К.Е. Михайлов, Г.А.
Жуков, О.Е. Кричевская, С.В. Ясеновский, Л.А. Вдовенко, Б.Е. Одинцов, Г.А.
Титоренко, Г.Д. Савичев, В.И. Гусев, С.Е. Смирнов, В.И. Суворова, Г.В.
Федорова, Г.Б. Коняшина. М.: ВЗФЭИ, 2000. Дата обновления 24.11.2010. URL: http://repository.vzfei.ru
. Информатика:
методические указания по выполнению курсовой работы для студентов второго курса
всех специальностей. М.: ВЗФЭИ, 2008. URL: http://repository.vzfei.ru.