TcpClient , яке управляє підключенням клієнту. МетодStart входить прослуховування, а метод Stop відключити прослуховування порту. Метод AcceptTcpClient приймає запити вхідного підключення і створює TcpClientдля обробки запиту, а метод AcceptSocket приймає запити вхідного підключення і створює Сокет для обробки запиту.
У наступному прикладі показано створення сервер часу мережі за допомогою монітора TcpListener на TCP-порт 13. При отриманні запиту вхідного підключення, сервер відповідає часу поточною датою і часом з хоста-сервера.
2.2 Специфікація функціональних вимог
Робота програми з погляду користувача представлена ??на EDF0 діаграмі.
Основні етапи функціонування системи.
. Створення кімнати.
Користувач на цьому етапі вибирає тип гри, кількість користувачів і розмір матриці. Створюється кімната. Залежно від обраного типу гри виробляються настройка прослуховування порту додатки (за замовчуванням це 1986). Вхідні дані етапи - запит користувача на початок гри. Вихідні дані - обраний тип гри, параметри гри.
. Очікування опонентів. На етапі очікування опонентів поьлзователь очікує коли друними користувачі підключаться до створеній кімнаті. Якщо вибраний мережевий режим гри, то цей етап пропускається і управління переходить до етапу «Процес гри». Вхідні дані - обраний тип кімнати. Виходнве дані - список учасників.
. Процес гри
На цьому етапі користувачі черзі додають літери на матрицю, вибирають слова, підтверджують їх вибір. Процес триває поки в матриці слів є вільні клітини. Вхідні дані - список учасників, конфігураційні налаштування. Вихідні дані - заповнена матриця і статистика гравців.
. Підведення підсумків гри.
На цьому етапі піднімається статистика обраних слів. Виробляється підрахунок букв. Гравець, який набрав найбільшу кількість букв стає переможцем. Вхідні дані - заповнена матриця і статистика гравців. Вихідні дані - результати гри (ім'я переможця).
3. Основні класи програми та їх опис
Ім'я классаОпісаніе классаЛогіка отображеніяDisplayManagerКласс, відповідальний за відображення для користувача елементів управління. DisplaySettingsКласс-охоронець налаштувань для отображенія.GameLogicControlsКласс хранитель елементів управління, які беруть участь у процесі ігри.DisplayCellЯчейка матриці. Ігровий елемент управління, який зберігає вставленниую буквуПосреднічествоNegotiationManagerКласс посередник. Зв'язує між собою логіку відображення, ігрову логіку і логіку передачі даних по мережі і логіку серелізаціі повідомлень для передачі даних по сеті.Сетевая логікаNetworkManagerСозданія кімнат, підключення до кімнаті, відправка повідомлень клієнтам, ооповещенія користувальницьких додатків про необхідність зміни функціонала.NetworkMassageHandlerКласс для обробки повідомлень, отриманих по мережі і зміни стану пріложенія.MessageTypeТіп сообщеніяNetworkClientСетевой клієнт. Клас заснований на TCP клієнті для взаємодії кліенского і серверного пріложенія.NetworkServerСетевой сервер. Клас, заснований на TCP сервері для взаємодії з клієнтськими пріложеніямі.СереалізаціяSerializerManagerКласс для сереалізаціі і десерелізацііі користувальницьких додатків переданих по сеті.SettingsManagerКласс для керування ігровими настройкамі.Ігровая логікаGamePlayManagerКласс для управління ігровий логікой.GameSattisticsКоллекція елементів відображають статистику ігри.LogicCellЛогіческая абстракція осередку матріциPlayerІгрок - користувач пріложеніяWordАбстракція слова.
Взаємодія ігрової логіки і логіки відображення з метою підтримки інкапсуляції відбувається за допомогою делегатів.
ДелегатНазначеніеvoid DisplayMatrixCells (List lt; LogicCell gt; logicCells); Відображення на графічному інтерфейсі оновлених логічних осередків ігровий логіки. void DisplayMessage (string message); Відображення на графічному інтерфейсі підказки. void DisplayError (string message); Відображення на графічному помилки. bool ConditionAction (string word); Перевірка умови.
4. Тестування програми
Додаток тестувалося на комп'ютерах наступних конфігурацій:
· Intel Core i5-3470 (3.2 GHz), 8 Gb RAM, 500 Gb HDD.
· AMD A8-4500M (1,9 GHz), 6 Gb RAM, 500 Gb HDD.
Тестування проводилося за допомогою додатково розробленого клієнтського додатку.
На кожній з машин було встановлено всі потрібне програмне забезпечення. На цих системах додаток працювало швидко, без зависань.