
- •Пояснювальна записка
- •Реферат
- •Реферат
- •На дипломну роботу студенту туховському павлу валерійовичу
- •Календарний план
- •Содержание
- •Введение
- •1 Постановка задачи
- •1.1 Актуальность нововведения системы «Smart Library»
- •1.2 Обоснование выбранной модели
- •1.3 Анализ решения поставленной задачи
- •2 Описание предметной области
- •2.1 Обзор существующего программного обеспечения
- •2.2 Структура формата mp3
- •2.4 Сокеты tcp/ip, клиент-сервер
- •2.5 Краткий вывод
- •3 Описание и обоснование выбора программных средств для реализации поставленной задачи
- •3.1 Язык программирования Visual Basic.Net в среде разработки Visual Studio 2008
- •3.2 Субд Microsoft Access
- •4 Разработка сетевого приложения «mp3_Catalogizator»
- •4.1 Описание данных (входные, промежуточные, выходные)
- •4.2 Топология сети
- •4.3 Функционал серверного приложения
- •4.4 Функционал клиентского приложения
- •4.5 Администрирование приложения
- •4.6 Схема взаимодействия приложений
- •4.7 Обмен данными
- •4.8 База данных
- •4.9 Сетевые компоненты
- •4.10 Системные требования
- •4.11 Программирование сервера
- •4.12 Программирование интерфейса клиента
- •4.13 Устранение возможных ошибок программы
- •4.14 Контрольный пример
- •Руководство пользователя
- •Список ссылок
- •Приложение а Модуль “mp3_Tags.Vb”
- •Приложение б Интерфейс программы
4.9 Сетевые компоненты
В программе для передачи данных по сети был использован компонент System.Net.Sockets. Класс Socket обеспечивает широкий набор методов и свойств для сетевых взаимодействий, и может быть использован для создания приложений клиента и сервера.
Принцип формирования соединения состоит в следующем. Сервер устанавливает порт с которым приложение будет работать, и начинает его "слушать":
Dim serverSocket As New TcpListener(8888)
serverSocket.Start()
Программа-клиент инициирует соединение отправляя запрос на подключение серверу:
Dim clientSocket As New System.Net.Sockets.TcpClient()
clientSocket.Connect(ip_server, 8888)
Получая такой запрос сервер создает соединение:
clientSocket = serverSocket.AcceptTcpClient()
После этого клиент и сервер могут обмениваться данными.
Отправение данных:
Dim serverStream As NetworkStream = clientSocket.GetStream()
Dim outStream As Byte() = serverStream.Write(outStream, 0, outStream.Length)
serverStream.Flush()
Получение данных:
Dim networkStream As NetworkStream = clientSocket.GetStream()
Dim bytesFrom(10024) As Byte
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
4.10 Системные требования
Приложение не нуждается в высоких системных требованиях.
Системные требования для корректной работы серверной части:
Процессор 300 MHz, оперативная память 512 Мб, VGA (800 x 600), сетевая карта.
Системные требования для корректной работы клиентской части:
Процессор 300 MHz, оперативная память 128 Мб, VGA (800 x 600), сетевая карта.
4.11 Программирование сервера
Программа «MP3_Catalogizator_Server» является консольным приложением и включает в себя следующие компоненты:
Модуль Module_MP3_Tags для чтения и редактирования тегов MP3-файла.
Подключаемая к проекту база данных db.mdb.
После подробного изучения структуры формата ID3V1 MP3 было принято решение о создании модуля “MP3_Tags.vb”. В нём реализованы два метода для работы с данными MP3 (см. приложение А):
Функция Refresh() – служит для считывания данных из ID3V1 (см. приложение А1).
Функция Update() – для записи данных в файл MP3 (см. приложение А2).
4.12 Программирование интерфейса клиента
Программа «MP3_Catalogizator_Client» включает в себя следующие компоненты:
Главная форма Form_MP3_Catalogizator_Client (см. приложение Б1).
Форма Form_Admin (см. приложение Б4) для управления информационной базой данных.
Форма Form_Genre (см. приложение Б2) для вывода диаграммы по статистике жанров [8].
Модуль Module_Forms для объявления общих используемых объектов двух форм [4].
Главная форма занимает доминирующее время работы в диалоговом режиме с пользователем, потому как все основные действия пользователь выполняет с её объектами.
Для организации разделения списка плейлистов и прослушиваемых треков, была введена система профилей пользователей [5]. При входе либо регистрации пользователя, в базу данных на сервере посылается соответствующий запрос на выборку либо на добавление в таблицу «Users».
В программе также доступна сортировка песен в списке по каждому тегу, которая осуществляется выбором названия необходимого поля в элементе управления ComboBox_Sort. При выделении строки в ListView_Music информация из таблицы становиться доступной для просмотра и редактирования в нижней части формы в области GroupBox_Tag. По нажатию кнопки «Save» текущие данные элементов управления этой области передаются серверу и записываются в файл MP3 [3], и, если песня содержится в базе, то и в соответствующие таблицы: «Songs», если это информация ID3V1, и в «SongPlaylist», если это рейтинг.
Число прослушиваний трека автоматически сохраняется в серверную базу посредством отправки запроса на обновление при каждом новом воспроизведении трека, но только в том случае, если эта песня входит в состав одного из плейлистов пользователя в базе данных.
Для работы с плейлистами существует область элементов управления GroupBox_Playlist, в которой виден текущий плейлист, и доступны функции создания нового плейлиста с помощью запроса на добавление, либо удаления выбранного при помощи запроса на удаление из базы. Для удобства работы со списком песен, к элементу управления ListView_Music подключено контекстное меню [3], которое содержит пункты добавления трека в текущий плейлист, в новый плейлист, либо его удаление из списка и плейлиста. При нажатии на кнопку «Genre Stats» открывается вторая форма Form_Genre, на которой строится диаграмма [11] по наличию песен того или иного жанра в базе данных на сервере.