Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для BeginerMan
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427

Смена TCP на UDP

10.06.2016, 20:13. Показов 2468. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасьте !!!

У меня вот есть игра, где игроки будут взаимодействовать с собой в реальном времени.

Этапы игры будут делится на:
1. Вход в игру(соединение с сервером, загрузка своего профиля)
2. Создание группы(если с друзьями)
3. Вход на карту(инфа о других игроках, инфа о карте)
4. Процесс игры(передача данных между игроками)

Для FPS игры лучше использовать UDP. Но надёжность в нём плохая, не знаешь точно дошли пакеты или нет.
Поэтому UDP использовать буду только в 4 пункте, доставка быстрая, и боком на переправку(что реализовано в TCP), потому что нам важны свежие данные.
А в первых 3 пунктах было бы неплохо использовать TCP, когда у тебя есть достаточно времени, чтобы игрок подождал точных данных, и не надо никаких проверок дошли данные или нет.

Но по скольку игрок в основном будет находится в процессе игры, то UDP используется больше. Ну я и начал делать свои системки "надёжные", который бы точно отправляли и получали все данные с сервера в первых 3 пунктах, но это всё замороченно ...

Так вот вопросик:
Могу ли я как-то во время первых 3 пунктах использовать TCP, а когда начинается процесс игры, перевести свой СОКЕТ на UDP ?
Что-то типо:
1. Инициализирую WinSock
2. Создаю TCP сокет
3. Когда начинается игра, закрыть TCP сокет и пересоздать на UDP
4. Заканчивается игра -> переход в меню, закрываю UDP сокет, пересоздаю на TCP

Если такое возможно, то как мне организовать НА СЕРВЕРЕ одновременно UDP и TCP ? Ведь некоторые могут находится в меню и для них нужно будет TCP, а некоторые в игре и для них нужно UDP.

Помогите решить проблему !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2016, 20:13
Ответы с готовыми решениями:

TCP/IP пакеты. Как можно изменить служебные параметры заголовка TCP или UDP?
Всем привет! Работаю с передачей данных через интернет. Как можно изменить служебные параметры заголовка TCP или UDP (флаги, контрольная...

TCP и UDP
Вот при отправке данных по TCP - данные передаются как поток байт. И не известен размер порции которую отправляет функция send() за один...

Применение TCP и UDP
при передаче больших обьемов данных( несколько тысяч килобайт или много мегабайт) какой протокол следует применять TCP или UDP?? ...

3
233 / 99 / 27
Регистрация: 20.03.2014
Сообщений: 304
10.06.2016, 20:30
Что вам мешает создать два коннекта? Один UDP сокет для игры, а другой TCP сокет для остального? Открою вам секрет, клиент может создавать сколько угодно подключений к серверу на какие угодно сокеты.

Не по теме:

Цитата Сообщение от BeginerMan Посмотреть сообщение
где игроки будут взаимодействовать с собой в реальном времени
Интересная наверно игра - взаимодействие с собой))



Добавлено через 7 минут
Если подробнее, то вам нужно либо два сервера (сервер авторизации и игровой) либо программа сервера должна работать в двух потоках. В одном потоке крутятся TCP сокеты, в другом UDP. Имхо, мультиплеерная FPS игра сложноватый проект для начинающего, слишком много нюансов и сложностей.
0
 Аватар для BeginerMan
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
10.06.2016, 20:34  [ТС]
Взаимодействовать с другими игроками )))
Т.е. я могу создать 2 Сокета(TCP, UDP) и на клиенте, и на сервер, и без всяких проблем передавать информацию ?
Я могу сейчас фигню сморозить ... Но я могу быть уверен, что TCP-сервер не поймает UDP-клиент или наоборот ?
Или просто использовать разные порты для этого ?
0
233 / 99 / 27
Регистрация: 20.03.2014
Сообщений: 304
10.06.2016, 20:35
Цитата Сообщение от BeginerMan Посмотреть сообщение
Или просто использовать разные порты для этого ?
И вы выиграли миллион!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2016, 20:35
Помогаю со студенческими работами здесь

Передача файлов по протоколам TCP и UDP
Добрый вечер!Подскажите где почитать и как примерно делать такое: Клиент запрашивает имя файла у сервера,сервер посылает файл или...

Заголовки пакетов ( ip / tcp / udp / icmp )
Есть сниффер , приходит пакет , в файл сохраняю информацию о заголовке . Проблема в том что поля IPHeader в файл записывается (вроде)...

Эхо сервер без Qt, Boost и тп (TCP/UDP)
Добрый день! Стоит задача - реализовать эхо сервер (клиент-серверное приложение), которое будет принимать пакеты по протоколу UDP/TCP...

Передача информации по TCP/UDP, находясь за роутером
Всем привет! Проблема заключается в названии самой темы. Она ОЧЕНЬ распространена и это будет просто круто, если вы поможете мне ее...

Написать соединение: много клиентов - сервер (Winsock; на сервере 3 сокета: 2 TCP и 1 UDP)
Всем здрасьте !!!! Мне надо написать соединение: много клиентов - сервер Тут мне надо иметь на сервере 3 сокета: 2 TCP и 1 UDP ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru