Алгоритм серверного приложения
При подключении к серверу нового клиента всем другим клиентам отсылается сообщение ClientConnected, получив которое, клиент запрашивает информацию о новом пользователе и добавляет ее в список доступных пользователей. Также сервер осуществляет сбор информации обо всех действиях, произведенных на сервере. Полученные данные записывает в файл на жестком диске. Алгоритм работы сервера показан… Читать ещё >
Алгоритм серверного приложения (реферат, курсовая, диплом, контрольная)
Серверное приложение выполняет управляющую функцию, функцию координатора клиентов, а также ведет журналирование.
В бесконечном цикле блок читает пакеты, приходящие от клиента, с которым установлено соединение. Затем происходит анализ типа полученного пакета.
Если тип пакета = AuthorizationRequest, то происходит регистрация нового пользователя на сервере.
При получении пакета с типом ConnectToClientRequest — происходит передача информации о клиенте, который хочет подключиться клиенту, к которому он хочет подключиться.
Получив пакет с типом IQuit — удаляет пользователя из списка активных пользователей и отсылает всем клиентам сообщение об отключившемся пользователе.
Также сервер осуществляет сбор информации обо всех действиях, произведенных на сервере. Полученные данные записывает в файл на жестком диске. Алгоритм работы сервера показан на рисунке 2.5.
Рисунок 2.5. Блок схема алгоритма работы сервера.
Структура клиентского приложения
Задачами клиентского приложения являются взаимодействие с пользователем с одной стороны и с сервером с другой стороны.
После отправки клиентом серверу запроса на подключение, клиент может получить одно из следующих сообщений: AuthorizationSuccess, AuthrizationFailed. В случае сообщений первого типа — клиент успешно авторизован на сервере, он получает список доступных пользователей. Во втором случае авторизация была неудачна и на экран выводится сообщение с причиной неудачи.
При подключении к серверу нового клиента всем другим клиентам отсылается сообщение ClientConnected, получив которое, клиент запрашивает информацию о новом пользователе и добавляет ее в список доступных пользователей.
При отключении клиента от сервера всем другим клиентам отправляется сообщение ClientDisconnected, получив которое, клиент удаляет информацию о пользователе из списка доступных пользователей.
При инициировании передачи аудио клиент посылает серверу пакет для другого клиента с типом ConnectToClientRequest, содержащий информацию о пользователе.
Клиент, получивший такое сообщение, читает данные о пользователе и выводит сообщение на экран с запросом на соединение. Если пользователь готов начать аудиопередачу — он отправляет клиенту пакет типа ConnectToClientSuccess, который содержит информацию о данном пользователе.
Получив такой пакет, клиент читает информацию о пользователе и инициирует аудиопередачу.
Если пользователь не готов или не желает начать аудиопередачу — он отправляет пакет с типом ConnectToClientFailed, получив который, другой клиент уведомляет пользователя об отказе в соединении.
При завершении аудиопередачи, клиент получает сообщение DisconnectRequest и прекращает передачу данных.
Алгоритм работы клиента показан на рисунке 2.6.
Рисунок 2.6. Блок-схема алгоритма работы клиента.