Очень доброжелательный и компетентный автор. Всегда был на связи, все разъяснил, предоставил несколько вариантов программы. Рекомендую.
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
System.Threading
Класс Thread определяет ряд методов и свойств, которые позволяют управлять потоком и получать информацию о нем. Основные свойства класса:
• Статический метод GetDomain возвращает ссылку на домен приложения
• Статический метод GetDomainID возвращает id домена приложения, в котором выполняется текущий поток
• Статический метод Sleep останавливает поток на определенное количество миллисекунд
• Метод Interrupt прерывает поток, который находится в состоянии WaitSleepJoin
• Метод Join блокирует выполнение вызвавшего его потока до тех пор, пока не завершится поток, для которого был вызван данный метод
• Метод Start запускает поток
Вначале я создал консольный проект сервера, который я назвал ChatServer. В этот проект я добавил два новых класса ClientObject и ServerObject
У объекта ClientObject будет устанавливаться свойство Id, которое будет уникально его идентифицировать, и свойство Stream, хранящее поток для взаимодействия с клиентом. При создании нового объекта в конструкторе будет происходить его добавление в коллекцию подключений класса ServerObject, который я далее создадам:
serverObject.AddConnection(this);
Основные действия происходят в методе Process(), в котором реализован простейший протокол для обмена сообщениями с клиентом. Так, в начале получаем имя подключенного пользователя, а затем в цикле получаем все остальные сообщения. Для трансляции этих сообщений всем остальным клиентам я буду использовать метод BroadcastMessage() класса ServerObject.
Разработка сетевого приложения «Чат». Мультипоточная реализация сервера, на базе протокола TCP; PTHREAD.
Вначале я создал консольный проект сервера, который я назвал ChatServer. В этот проект я добавил два новых класса ClientObject и ServerObject
У объекта ClientObject будет устанавливаться свойство Id, которое будет уникально его идентифицировать, и свойство Stream, хранящее поток для взаимодействия с клиентом. При создании нового объекта в конструкторе будет происходить его добавление в коллекцию подключений класса ServerObject, который я далее создадам:
serverObject.AddConnection(this);
Основные действия происходят в методе Process(), в котором реализован простейший протокол для обмена сообщениями с клиентом. Так, в начале получаем имя подключенного пользователя, а затем в цикле получаем все остальные сообщения. Для трансляции этих сообщений всем остальным клиентам я буду использовать метод BroadcastMessage() класса ServerObject.
Все подключенные клиенты будут храниться в коллекции clients. С помощью методов AddConnection и RemoveConnection мы можем управлять добавлением / удалением объектов из этой коллекции.
1. Wikipedia.org [Электронный_ресурс].–_Режим_доступа: https://ru.wikipedia.org/wiki/Клиент_—_сервер. – (дата обращения 12.05.2022).
2. Wikipedia.org [Электронный_ресурс].–_Режим_доступа: https://ru.wikipedia.org/wiki/Transmission_Control_Protocol. – (дата обращения 12.05.2022).
3. Хабр [Электронный_ресурс] / skillbox. – Режим_доступа: https://habr.com/ru/post/120157/. – (дата обращения 12.05.2022).
4. Хабр [Электронный_ресурс] / skillbox. – Режим_доступа: https://habr.com/ru/post/495698/– (дата обращения 12.05.2022).
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
System.Threading
Класс Thread определяет ряд методов и свойств, которые позволяют управлять потоком и получать информацию о нем. Основные свойства класса:
• Статический метод GetDomain возвращает ссылку на домен приложения
• Статический метод GetDomainID возвращает id домена приложения, в котором выполняется текущий поток
• Статический метод Sleep останавливает поток на определенное количество миллисекунд
• Метод Interrupt прерывает поток, который находится в состоянии WaitSleepJoin
• Метод Join блокирует выполнение вызвавшего его потока до тех пор, пока не завершится поток, для которого был вызван данный метод
• Метод Start запускает поток
Вначале я создал консольный проект сервера, который я назвал ChatServer. В этот проект я добавил два новых класса ClientObject и ServerObject
У объекта ClientObject будет устанавливаться свойство Id, которое будет уникально его идентифицировать, и свойство Stream, хранящее поток для взаимодействия с клиентом. При создании нового объекта в конструкторе будет происходить его добавление в коллекцию подключений класса ServerObject, который я далее создадам:
serverObject.AddConnection(this);
Основные действия происходят в методе Process(), в котором реализован простейший протокол для обмена сообщениями с клиентом. Так, в начале получаем имя подключенного пользователя, а затем в цикле получаем все остальные сообщения. Для трансляции этих сообщений всем остальным клиентам я буду использовать метод BroadcastMessage() класса ServerObject.
Разработка сетевого приложения «Чат». Мультипоточная реализация сервера, на базе протокола TCP; PTHREAD.
Вначале я создал консольный проект сервера, который я назвал ChatServer. В этот проект я добавил два новых класса ClientObject и ServerObject
У объекта ClientObject будет устанавливаться свойство Id, которое будет уникально его идентифицировать, и свойство Stream, хранящее поток для взаимодействия с клиентом. При создании нового объекта в конструкторе будет происходить его добавление в коллекцию подключений класса ServerObject, который я далее создадам:
serverObject.AddConnection(this);
Основные действия происходят в методе Process(), в котором реализован простейший протокол для обмена сообщениями с клиентом. Так, в начале получаем имя подключенного пользователя, а затем в цикле получаем все остальные сообщения. Для трансляции этих сообщений всем остальным клиентам я буду использовать метод BroadcastMessage() класса ServerObject.
Все подключенные клиенты будут храниться в коллекции clients. С помощью методов AddConnection и RemoveConnection мы можем управлять добавлением / удалением объектов из этой коллекции.
1. Wikipedia.org [Электронный_ресурс].–_Режим_доступа: https://ru.wikipedia.org/wiki/Клиент_—_сервер. – (дата обращения 12.05.2022).
2. Wikipedia.org [Электронный_ресурс].–_Режим_доступа: https://ru.wikipedia.org/wiki/Transmission_Control_Protocol. – (дата обращения 12.05.2022).
3. Хабр [Электронный_ресурс] / skillbox. – Режим_доступа: https://habr.com/ru/post/120157/. – (дата обращения 12.05.2022).
4. Хабр [Электронный_ресурс] / skillbox. – Режим_доступа: https://habr.com/ru/post/495698/– (дата обращения 12.05.2022).
Купить эту работу vs Заказать новую | ||
---|---|---|
1 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
200 ₽ | Цена | от 500 ₽ |
Не подошла эта работа?
В нашей базе 149278 Курсовых работ — поможем найти подходящую