Информационно-вычислительная сеть на основе технологии клиент-сервер, предметная область: "Диски"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
рограммы необходимо указать подключаемую библиотеку ws2_32.lib. Для начала работы с сетью необходимо проинициализировать библиотеку ws2_32. Для этого используется следующая функция: int WSAStartup (unsigned int wVersionRequested, struct WSAData *lpWSAData ).
При завершении работы с сокетами необходимо вызвать функцию int WSACleanup(), которая завершает работу программы с библиотекой гнезд Ws2_32. При успешном выполнении функция возвращает 0. Если произошла ошибка, возвращается ненулевое значение.
1.2 Сервер
Для того чтобы процессы-клиенты могли связаться с сервером, сервер создает сокет для обмена данными. Сокет представляет собой особый вид файла, из которого можно читать и в которой можно записывать данные. Создание сокета подразумевает вызов функции socket.
Далее осуществляется получение локального адреса, чтобы все запросы на соединения, приходящие на данную ЭВМ и обращающиеся к указанному порту, операционная система направляла данному процессу. Осуществляется вызов функции bind, в которой указывается созданный ранее сокет, IP-адрес ЭВМ и порт. В случае успеха сервер вызывает функцию listen, которая говорит операционной системе о том, что процесс ожидает поступления запросов на соединение к данному сокету.
Когда клиент вызывает функцию connect, серверу приходит запрос на соединение. Для того чтобы программа смогла вести обмен данными с клиентами и одновременно продолжать работу, сервер создает копию сокета. Таким образом создаётся новая нить, создаваемая при помощи функции _beginthread.
Далее осуществляется обмен данными. Сервер связан с БД, откуда и берётся необходимая информация. Используется СУБД MS Access. После приема данных они дешифруются.
По окончании работы с клиентом серверный процесс закрывает свою копию сокета и уничтожается.
1.3 Клиент
Для соединения клиенту так же как и серверу необходимо создание сокета.
Подключения осуществляются только тогда, когда тот процесс ожидает приема соединения. Для установки соединения необходимо указать IP-адрес ЭВМ и порт, то есть использовать функцию connect.
Далее осуществляется приём данных. Перед осуществлением передачи данные шифруются. На принимающей стороне полученные данные дешифруются.
Разрыв соединения осуществляется при помощи функции close, которая уничтожает сокет.
2. Разработка системы передачи данных в локальной вычислительной сети
2.1 Анализ требований
Необходимо разработать на языке С++ клиент-серверное приложение - систему программ, осуществляющих взаимодействие посредством локальной вычислительной сети. Графический интерфейс приложения разработать, используя библиотеку MFC. Программа должна состоять из двух частей: клиента и сервера. Сетевой интерфейс между компьютерами в сети организовать с помощью сокетов. Программа сервер должна отправлять сообщения всем подключенным клиентам. Использовать среду программирования MS Visual Studio.
2.2 Проектирование
Исходя из требований, необходимо реализовать приложение клиент и приложение сервер. Если сервер готов к работе, то он должен ожидать подключения к нему клиентов. Клиент делает запрос и принимает данные с сервера. Если сервер не готов, клиент извещается об этом.
3. Реализация
3.1 Реализация приложения сервер
При запуске программы сервер производится инициализация библиотеки WinSock. Запускается поток прослушивания порта 250188. Вводится пароль. Выбирается источник данных - БД MS Access. Сервер ожидает обращения клиентов.
.2 Реализация приложения клиент
При запуске клиента инициализируется библиотека WinSock. При нажатии кнопки ОК производится попытка подключиться к сокету сервера с указанным IP адресом и портом. Если сервер не запущен, то выводится сообщение об ошибке соединения. При удачном соединении запускается поток, в котором серверу отправляется имя клиента и начинается прослушивание сокета. Клиент делает запрос. Сервер отсылает информацию клиенту. Полученные данные выводятся на экран. При работе с сервером клиент может в любой момент прервать соединение, нажав кнопку Выход.
4. База данных Диски
серверный программирование локальный сеть
В магазине продаются компакт-диски различных групп. Каждая группа имеет несколько альбомов. Каждый альбом включает несколько песен. Разработана соответствующая БД. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). В построенной модели имеются пять сущностей.
. disks (group, album, year, label, quantity)
Эта сущность хранит расширенную информацию о дисках.
. Pantera (album, year, label)
Эта сущность хранит информацию об альбомах группы Pantera.
3. Metallica (album, year, label)
Эта сущность хранит информацию об альбомах группы Metallica.
. Nirvana (album, year, label)
Эта сущность хранит информацию об альбомах группы Nirvana.
. Nevermind (album, song, time)
Эта сущность хранит информацию об альбоме Nevermind группы Nirvana.
Атрибуты album, year, label выполняют функцию индексной связи между сущностями, которая определяет связь между таблицами Pantera, Metallica, Nirvana - Nevermind.
Модель данной БД представлена на рисунке 1.
Рисунок 1
5. Результаты работы системы
Проведено тестирование программы, подтверждающее правильность её работы. Ниже приведены результаты работы.