Skip to content

Wiks00/D2.Task1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание к модулю Multithreading Общее Наша задача – разработка клиента и сервера для простого корпоративного чата. Основные характеристики нашего решения: • Сервер и клиент реализованы как обычные консольные или GUI приложения (на ваш выбор) • Взаимодействие между клиентами и сервером осуществляется посредствам Named Pipes (System.IO.Pipes) или Sockets (System.Net.Sockets) – также на ваш выбор. Для простоты настройки можно хранить все параметры подключения в коде. • Клиент представляет собой бот, который после запуска выполняет циклически: o Подключается с новым именем к серверу o Отправляет несколько сообщений серверу (сообщения выбираются случайно из готового списка, количество отправляемых сообщений и паузы между ними также задаются случайно) o Принимает все сообщения от сервера, которые выдают на экран и/или сохраняет в файл o Отключается от сервера Цикл повторяется до тех пор, пока пользователь не завершит работу клиента или не возникнет ошибка работы с сервером • Сервер: o Принимает подключение от клиента. При подключении узнает имя подключенного клиента. o Принимает от клиентов строки сообщений и рассылает их остальным подключенным клиентам o Хранит историю из N последних сообщений, которые рассылает клиентам при первом подключении o При завершении приложения рассылает клиентам уведомление и корректно закрывает все подключения Задание 1 Реализуйте клиент и сервер используя для сервера схему «Для каждого клиента – свой поток обработки» Чтение и запись можно делать синхронными операциями Задание 2 Перепишите клиент и сервер используя (на выбор или совместно): • Классические асинхронные операции (BeginXXX/EndXXX) и пул потоков для операций, которые вы инициируете сами • Task Parallel Library

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages