0 / 0 / 0
Регистрация: 30.04.2022
Сообщений: 1
1

Как должен работать многопользовательский сервер на cpp?

12.06.2022, 01:20. Показов 2649. Ответов 1

Начинаю изучать сокеты и сетевое программирование на плюсах. Собственно задача - сделать многопользовательский шахматный сервер - вводишь код сопряжения и играешь с человеком. Опыт работы с сокетами - как у всех новичков, передача текстовых сообщений и мини-чат на winsock, ничего сложного. Прежде, чем начинать проект, хотелось бы узнать, как это делают нормальные люди. Пока что пришло в голову только создать массив объектов для каждой пары, в котором будет храниться состояние шахматной доски и отдаваться по запросу. Но, мне кажется, можно сделать гораздо умнее
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2022, 01:20
Ответы с готовыми решениями:

Как делается многопользовательский клиент/сервер?
Скажите как делается многопользовательский клиент сервер прочитал про поле дата в...

Как сделать многопользовательский клиент-сервер?
Здравствуйте. Скажите пожалуйста, как сделать многопользовательский клиент сервер. Чтоб можно...

Как создать многопользовательский чат (Сервер-клиент)
Как создать многопользовательский чат(Сервер-клиент)?

Должен ли работать файловый сервер для компов, не входящив домен, но с польз-ми, совпадающими с доменными по имени и паролю
Windows Server 2008 Есть локальный домен lalala.local под управлением ActiveDirectory и компы...

Есть три файла. файл main.cpp и Source.cpp знают только Header.h, так как он подключен. как же подключается Source.cpp
main.cpp #include <iostream> #include"Header.h" using namespace std; int main() { A ob;...

1
2 / 1 / 1
Регистрация: 14.06.2014
Сообщений: 42
11.08.2022, 10:35 2
Лучший ответ Сообщение было отмечено Limpop0 как решение

Решение

Я уже давно об этом думал и сейчас вновь берусь за эту задачу. Представляю себе многопотоковое приложение обрабатывающее в одном потоке прослушивание, в новых потоках каждого подключившегося клиента и один основной поток для всей логики сервера. Вот описание логики работы:

Поток ожидающий подключения:
Создаёт сокет, привязывает к IP и порту и ожидает запросов. При запросе подключает клиента, верифицирует, создаёт новый поток с новым сокетом, и портом к которому переподключается клиент, после чего переходит в ожидание новых подключений.

Поток для клиента:
создаёт сокет привязывается к IP и порту из списка портов, принимает клиента, создаёт структуру переменных для обмена данными с клиентом.

Основной поток:
Производит вычисления серверной логики и ведёт обмен между потоками для клиентов. При этом, для гарантии целостности данных должны быть раздельные каналы ввода и вывода в потоки и из потоков, т.е. переменные из которых читаются данные и переменные через которые отправляются данные к клиенту, должны быть разделены, тем самым не произойдёт ошибки одновременной записи и чтения.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2022, 10:35
Помогаю со студенческими работами здесь

Как может сервер-сайд код работать или не работать на конкретном компе?
Всем привет! Вот такая проблема. Есть сайт, все работает ок, но - один из компов имеющий Win98 и...

Многопользовательский чат (клиент/сервер)
Писал я чат многопользовательский, который состоит из сервера и клиента... Для работы надо создать...

Как должен работать программист?
Такой вопрос как должен работать программер, если он, допустим, работает, на заводе и разрабатывает...

Как должен работать насос?
всем привет вопрос такой,смущает работа насоса,при сливе воды он как бы работает прерывисто...

Как должен работать сабвуфер
Всем ПРИВЕТ! Как должен работать сабвуфер? Вопрос по выбору колонок 2.1; 5.1; 7.1 или просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru