Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом (Туховский Павел СИИ магистр 5-ый курс).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.06 Mб
Скачать

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] по наличию песен того или иного жанра в базе данных на сервере.