Очень доброжелательный и компетентный автор. Всегда был на связи, все разъяснил, предоставил несколько вариантов программы. Рекомендую.
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
Суть данного курсового проекта заключается в реализации сетевой игры “Крестики нолики” на языке C++, с интегрированным чатом между пользователями и комнатами игроков. Взаимодействие между клиентами необходимо реализовать посредством системных вызовов, предоставляемых Socket API.
Сервер
В пространстве имён Server реализованы следующие классы:
Net - реализует работу с сетевым интерфейсом;
Game - хранит сведения о текущем состоянии игры;
User - хранит всю необходимую информацию о пользователе;
Core - адаптер для связи трёх вышеупомянутых классов.
Алгоритм работы класса Net
Конструктор класса Net принимает на вход ip адрес и порт на котором должен работать сервер и порождает два потока: OpenConnection и SendMessage.
В классе Net реализованы следующие методы:
OpenConnection - поток для открытия новых соединений с сервером. Связывает имена пользователей и их дескрипторы и помещает результат в connect_clients (unordered map), а имя клиента помещает в очередь новых клиентов. Затем порождает поток ReadMessage для подключившегося клиента.
ReadMessage - поток для приема входящих сообщений. Создается для каждого клиента. Занимается тем, что помещает пришедшее от клиента сообщение в единую очередь пришедших сообщений.
SendMessage - поток для отправки сообщений пользователям. Занимается тем, что изымает из очереди очередное сообщение, которое необходимо отправить, после чего ищет имя клиента в connect_clients, получает дескриптор соединения и отправляет сообщение.
CloseConnection - закрывает соединение с клиентом.
Send - функция помещает сообщения для клиента в очередь на отправку. В отличии от вышеперечисленных функций входит в интерфейс.
Recv - блокирующая функция, которая возвращает первое пришедшее от клиентов сообщение (входит в интерфейс).
GetNewClientName - блокирующая функция, которая возвращает имя первого клиента находящегося в очереди подключившихся клиентов (входит в интерфейс).
Сетевая игра крестики нолики. Написана на языке C++. Графика реализована с помощью библиотеки ncurses. Отчёт в прикреплённом архиве.
Announcing ncurses 6.0 [Электронный ресурс] / 1998,2000,2004,2005,2006,2008,2011,2015 Free Software Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA Режим доступа: https://www.gnu.org/software/ncurses/ncurses.html, свободный. (Дата обращения: 13.12.2017).
Библиотека ncurses [Электронный ресурс] / Copyright 2005-2006 Бердников Александр Режим доступа: http://alexber220.narod.ru/ncurses/, свободный (Дата обращения: 13.12.2017).
Изучите алгоритмы работы системных вызовов TCP [Электронный ресурс] / Бинду Анупама Режим доступа: https://www.ibm.com/developerworks/ru/library/au-tcpsystemcalls/index.html, свободный (Дата обращения: 10.12.2017).
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
Суть данного курсового проекта заключается в реализации сетевой игры “Крестики нолики” на языке C++, с интегрированным чатом между пользователями и комнатами игроков. Взаимодействие между клиентами необходимо реализовать посредством системных вызовов, предоставляемых Socket API.
Сервер
В пространстве имён Server реализованы следующие классы:
Net - реализует работу с сетевым интерфейсом;
Game - хранит сведения о текущем состоянии игры;
User - хранит всю необходимую информацию о пользователе;
Core - адаптер для связи трёх вышеупомянутых классов.
Алгоритм работы класса Net
Конструктор класса Net принимает на вход ip адрес и порт на котором должен работать сервер и порождает два потока: OpenConnection и SendMessage.
В классе Net реализованы следующие методы:
OpenConnection - поток для открытия новых соединений с сервером. Связывает имена пользователей и их дескрипторы и помещает результат в connect_clients (unordered map), а имя клиента помещает в очередь новых клиентов. Затем порождает поток ReadMessage для подключившегося клиента.
ReadMessage - поток для приема входящих сообщений. Создается для каждого клиента. Занимается тем, что помещает пришедшее от клиента сообщение в единую очередь пришедших сообщений.
SendMessage - поток для отправки сообщений пользователям. Занимается тем, что изымает из очереди очередное сообщение, которое необходимо отправить, после чего ищет имя клиента в connect_clients, получает дескриптор соединения и отправляет сообщение.
CloseConnection - закрывает соединение с клиентом.
Send - функция помещает сообщения для клиента в очередь на отправку. В отличии от вышеперечисленных функций входит в интерфейс.
Recv - блокирующая функция, которая возвращает первое пришедшее от клиентов сообщение (входит в интерфейс).
GetNewClientName - блокирующая функция, которая возвращает имя первого клиента находящегося в очереди подключившихся клиентов (входит в интерфейс).
Сетевая игра крестики нолики. Написана на языке C++. Графика реализована с помощью библиотеки ncurses. Отчёт в прикреплённом архиве.
Announcing ncurses 6.0 [Электронный ресурс] / 1998,2000,2004,2005,2006,2008,2011,2015 Free Software Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA Режим доступа: https://www.gnu.org/software/ncurses/ncurses.html, свободный. (Дата обращения: 13.12.2017).
Библиотека ncurses [Электронный ресурс] / Copyright 2005-2006 Бердников Александр Режим доступа: http://alexber220.narod.ru/ncurses/, свободный (Дата обращения: 13.12.2017).
Изучите алгоритмы работы системных вызовов TCP [Электронный ресурс] / Бинду Анупама Режим доступа: https://www.ibm.com/developerworks/ru/library/au-tcpsystemcalls/index.html, свободный (Дата обращения: 10.12.2017).
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
1000 ₽ | Цена | от 500 ₽ |
Не подошла эта работа?
В нашей базе 150502 Курсовой работы — поможем найти подходящую