Пятница, 29 Марта 2024, 08:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Программирование .NET » Сервер на C# (вопрос)
Сервер на C# (вопрос)
PovstalezДата: Воскресенье, 22 Декабря 2013, 18:57 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Какой вариант лучше для сервера:
1) Сервер на синхронных ТСР сокетак, где каждому клиенту выделяется свой сокет и он читает/отправляет данные в своем потоке?
2) Сервер на синхронных UDP сокетах, где каждому клиенту выделяется свой сокет и он читает/отправляет данные в своем потоке?
3) Другой вариант?

Ибо написал сервер/клиент на ТСР сокетах но видно небольшую задержку между приемом данных. Проверяю очень просто - отправляю местоположение 1 игрока другому и когда приходят данные - я перемещаю игрокак в то место.
1 Игрок на экране второго очень дергается.

Еще 1 вопрос: Как лучше всего отправлять данные (в каком виде)? Сейчас же все отправляю в байтах.
Soo_JinДата: Воскресенье, 02 Февраля 2014, 21:51 | Сообщение # 2
был не раз
Сейчас нет на сайте
Ну если выбирать из твоих первых двух вариантов, то я бы выбрал первое, так как TCP роднее и надежней. (UDP - быстрый, но твои пакеты развалятся пока дойдут)
А вообще, лично я использую асинхронные TCP-сокеты, тк считаю, что это дает максимум производительности. Хотя запара ещё та.
По поводу передачи данных, думаю, байты - самый оптимальный вариант.

Плюс в шарпе есть очень хороший ThreadPool и объекты синхронизации, что так же может ускорить твой сервер.
last2424Дата: Воскресенье, 02 Февраля 2014, 23:16 | Сообщение # 3
30 мл. блоков
Сейчас нет на сайте
Povstalez, работай с пингом если пинг больше 70 то UPD если меньше то TPC. Так удобнее. Особенно если кто то будет играть через хамачи.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
PovstalezДата: Воскресенье, 02 Февраля 2014, 23:20 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Ребята, посмотрите на дату поста)
Вопрос уже давно снят. уже написал первую версию сетевого решения. Вот адресс:
http://sns.pp.ua/
VinchensooДата: Понедельник, 03 Февраля 2014, 07:21 | Сообщение # 5
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Povstalez, и как оно работает, мне просто интересно.

programMainДата: Пятница, 26 Октября 2018, 05:11 | Сообщение # 6
частый гость
Сейчас нет на сайте
То есть по твоему различие в скорости TCP и UDP настолько серьезная, что если пинг будет меньше 70 то лучше UDP?
Используйте для игр только TCP. А ты знаешь что пинг зависит от количества узлов по дороге? И так же ты знаешь что от количества этих узлов зависит вероятность разделения UDP пакета? Ответ один - хотите точность используйте TCP. А проблемы с пингом решаются поставкой серверов в регионе обслуживания.
Форум игроделов » Программирование » Программирование .NET » Сервер на C# (вопрос)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг