Разработка пейджинговой программы – система клиент – сервер, страница 6

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

3.1 Работа с базами данных.

В данном курсовом проекте приложения работают с базами данных созданных с помощью приложения ACCESS от MicrosoftOfficeXP(2000):

клиентское приложение работает с базами: History.mdb – таблица History и Message.mdb – таблица MesList.

- серверное приложение работает с базами: History.mdb - таблица History и UserList.mdb – таблица UserList.

3.1.1 Структура баз данных.

На рис21,22 ниже представлены конструкторы приведенных таблиц:

Конструкторы таблиц клиента:

рис21. Конструкторы таблиц клиента.

Поля для таблицы MesList – содержит контакт листы:

Counter – счетчик;

MyNumber – номер пользователя клиентским приложением на данной машине (номера у разных пользователей разные что используется внутри приложения для предоставления пользователю именно его списка контактов и корректной работы со списком контактов);

OutNumber – номер пользователя из добавленных в контакт лист;

Status – статус пользователя в контакт листе “on” или “off”;

NickName – Ник пользователя в контакт листе;

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

Counter – счетчик;

MyNumber – номер пользователя клиентским приложением на данной машине (номера у разных пользователей разные что используется внутри приложения для предоставления пользователю именно его списка обмена сообщениями);

OutNumber – номер пользователя из добавленных в контакт лист;

WhereFrom – логическое показывает пришло сообщение из вне или сообщение отправил сам пользователь на данной машине (от кого - кому).

DateTime – время когда пришло сообщение;

Data – непосредственно само сообщение.

Конструкторы таблиц сервера:

рис22. Конструкторы таблиц сервера.

Поля для таблицы Userist – содержит список зарегистрированных пользователей:

Counter – счетчик – номера зарегистрированных пользователей ;

FirstName – имя пользователя;

LastName – фамилия пользователя;

NickName – Ник пользователя;

DateLast - Дату последнего активного действия клиентского приложения – посылка сообщения, запрос на обновление списка пользователей.

IPaddress - IP адрес машины на которой находится данный пользователь;

Port - Номер порта на машине пользователя;

Password - Пароль пользователя для входа в систему.

    Поля для таблицы Historyсодержит историю обмена сообщениями для всех пользователей.

Counter – счетчик;

FNum – номер пользователя от которого пришло сообщение;

WNum – номер пользователя кому пришло сообщение;

DateTime – время когда пришло сообщение;

Data – непосредственно само сообщение.

3.1.2 Связь с базами данных.

Для связи с база данных использовалась технология ADO – ActiveX Data Objects – новейшая разработанная Microsoft технология доступа к базам данных.

Для подробного ознакомления с данной технологией можно воспользоваться [2](смотри список литературы)стр. 375 – 418.

Код соединения с базами (на примере одной) представлен в Приложении - Листинг 1. там же представлен пример построения интерфейсного класса(производного от CADORecordBinding) для сохранения данных извлекаемых из базы данных.

Для использования данной технологии обязательно подключение Dll библиотеки msado15.dll.

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

3.2 Сетевое взаимодействие.

Для обмена данными выбран протокол стека TCP/IPUDP.

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

Так как по заданию курсового проекта тип соединения между приложениями клиент – сервер – клиент должно быть “точка - точка” то использование, например, протокола TCP приведет к лишним соединениям – отключениям соответственно занимает больше времени.

Вывод: в данном проекте для создания сетевого взаимодействия использовался протокол UDP. Программирования сетевых процессов основывалось на использовании класса MFC CAsyncSocketкоторый позволяет с равным успехом использовать как TCP так и UDP.