Информационно-вычислительная сеть на основе архитектуры "клиент-сервер", предметная область: "Магазин бытовой техники"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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

int socket (int dom, int type, int protocol)

- dom - формат адреса;

type - тип гнезда;

protocol - задает код конкретного протокола;

Перед тем как осуществить отправку, данные шифруются. После, используется функция Sendto для отправки данных по заданному нами адресу.

Передача данных происходит тогда, когда сервер ожидает приёма соединения.

Для разрыва соединения используется функция Close, которая уничтожает созданный ранее сокет.

 

1.3 Программа сервер

 

Основной задачей серверной части является обработка. Обмен данными с клиентскими процессами есть важная составляющая часть этой задачи.

Программа сервер также как и клиент создаёт сокет, но в отличае от клиента, сервер должен создавать для каждого клиента отдельный сокет.

Далее осуществляется получение локального адреса, чтобы все запросы на соединения, приходящие Сервер и обращающиеся к указанному порту, операционная система направляла данному процессу. Осуществляется вызов функции bind.bind (int sid, struct sockaddr* addr_p, int len)

sid - дескриптор гнезда;

struct sockaddr*_p - адрес сетевого интерфейса;

- len - размер структуры на который указывает второй параметр;

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

Далее клиент подключается к серверу, осуществляется обмен информацией. Сервер связан с БД, откуда и берётся необходимая информация. Используется СУБД MS Access. После приема данных они дешифруются.

Когда обмен данными завершается сервер удаляет копию сокета.

 

 

2. Разработка системы передачи данных в локальной вычислительной сети

 

.1 Анализ требований

 

Необходимо разработать систему программ, осуществляющих взаимодействие посредствам локальной вычислительной сети, т.е. нужно реализовать два приложения: сервер и клиент. Программа сервер должна поддерживать множество соединений с программой клиент. Программа клиент посылает запрос на обмен данными с сервером, после подтверждения сервером данного запроса осуществляется обмен информацией, далее происходит разрыв соединения. Сетевой интерфейс между компьютерами в сети необходимо организовать с помощью сокетов. Программа сервер должна быть готова к отправке сообщения всем подключенным в данный момент клиентам. Реализация приложения - в среде программирования Microsoft Visual Studio. Программа должна обладать графическим интерфейсом, разработанным на базе библиотеки MFC.

 

.2 Проектирование

 

Исходя из требований к разрабатываемой системе, необходимо реализовать два приложения: приложение клиент и приложение сервер.

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

Клиент делает запрос на сервер и принимает информацию.

 

3. Реализация

 

.1 Реализация приложения сервер

 

При запуске программы сервер производится инициализация библиотеки WinSock. Запускается поток прослушивания порта 250188(стоит по умолчанию). При подключении клиента, запускается новый поток, в котором происходит обработка строки и отправка ее, клиенту. Вводится пароль. Выбирается источник данных - БД MS Access. Через функцию GetODBCFieldCount() осуществляется работа с ODBC, происходит выбор нужной базы данных и подключение. Сервер ожидает обращения клиентов. Удаление клиента заключается в удалении клиента из массива клиентов и из списка клиентов.

 

.2 Реализация приложения клиент

 

При запуске приложения клиента производится инициализации библиотеки WinSock. (в случае неудачи получаем код ошибки с помощью функции WSAGetLastError).

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

 

 

4. База данных Магазин бытовой техники

 

Рассмотрим предметную область, связанную с магазином бытовой техники. В магазине есть несколько групп товаров, склад, состав расходов и общий учёт расходов и доходов компании. Разработана база данных, определяющая описанную выше предметную область. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). В построенной модели имеются пять сущностей.

. Группы товаров (ID, название группы)

Эта сущность отводится для хранения информации обо всех видах товара. Атрибут ID выполняет функцию индексной связи между сущностями, которая определяет связь между таблицами Группы товаров - Товары - Состав расхода - Склад.

. То