=clientSocket. GetStream () bytesFrom (10024) As Byte. 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] по наявності пісень того чи іншого жанру в базі даних на сервері.
4.13 Усунення можливих помилок програми
У процесі виконання роботи були передбачені наступні можливі помилки та способи їх уникнення:
. При спробі перезаписати теги файлу, який в даний момент прослуховується, програма видає користувачеві повідомлення про помилку (див. Мал.).
Повідомлення про помилку при збереженні тегів
2. При спробі додати файл зі списку в поточний плейлист, якщо в даний момент ніякої з плейлистів неактивний, програма видає користувачеві повідомлення про помилку (див. Мал.).
Малюнок 4.14 - Повідомлення про помилку при неактивному плейлисті
3. При спробі додати в новий створюваний плейлист один і той же файл двічі, програма видає користувачеві повідомлення про помилку (див. Мал.).