Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2010, 21:54   #1
neo-210
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 21
Вопрос Клиент-Сервер

Всем привет!
Я сейчас пытаюсь написать сетевой движок для онлайн игры(интернет), в жанре RPG
Суть такая что, нужно передавать координаты игроков + инфо о подключении кого либо. ( разумеется еще много чего но не об этом дело ).
Я выбрал библиотеку SDL net после того как потыкал штук 10 разных, мне она показалась наиболее удобной для работы. Пишу на плюсах.
Я сейчас думаю как лучше спроектировать это дело.
Начитавшись посты я понял что лучше использовать TCP, если все нормально спроектировать это норм.
Мое видение:
- Запускаем сервер, начинаем слушать порт xxxx
- Клиент-> коннект
- Сервер -> шлет всем данные о новом подключении
- Открываем два потока для каждого подключения:
1) Принимает данные
2) Отсылает данные
( разговор о блокирующих обменах )
ну и далее общение

Собственно я хочу спросить у про по данной части.
Как я понимаю открывать для каждого подключения по потоку это плохо.
Как лучше всего организовать обменн данными, последовательный? Или оставить потоки. Собственно пока требуется от сервера немного, человек на 30. Но хотелось бы спроектировать все так, что бы потом не ковыряться и заного не переписывать весь код.

Также жду советов по внутренней архитектуре, создавать очереди событий я считаю плохо, ибо будет сильно запаздывать. Ну то есть в плане оптимизации ест советы. Либо статьи какие.

Если я что то не подробно обьяснил вы меня пните
neo-210 вне форума Ответить с цитированием
Старый 23.06.2010, 10:44   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Сервер слушает определенный порт, при подключении создается новый поток и создаешь сокет с данным подключением... далее в этом потоке можешь общатся с клиентом, а сервер будет дальше подключать клиентов..
Клиент тупо конектится к определенному айпи и порту и общается и все)
dampirik вне форума Ответить с цитированием
Старый 23.06.2010, 14:26   #3
neo-210
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 21
По умолчанию

Я принципе так и делаю, но есть мысли переделать на 3-4 потока, 1 слушает, на второй повесить логику, 3 отсылает ( или ждет если нет работы ). Грубо говоря я думаю как все это дело получше опимизировать, для максимальной производительности.
Также очень жду советов от людей, которые уже работали в данной области, разработки многопользовательских серверов.

Последний раз редактировалось neo-210; 23.06.2010 в 14:40.
neo-210 вне форума Ответить с цитированием
Старый 23.06.2010, 18:40   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Умные люди говорят (дословно): "Оптимизировать следует в том случае, если наблюдаются какието проблемы..."
Вы начните... а там будет понятно чего Вам нехвататет... может чем мы поможем...
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
клиент сервер balamut Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 01.11.2009 04:43
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57