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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 07:30   #11
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
а чем для этого ServerSocket и ClientSocket плохи
Вот вы представьте, играете в CS и у одного клиента возникла какая-то ошибка, у сервера появился MessageBox (он остановил выполнение программы), и у остальных клиентов появилась ошибка TimeOut. Это конечно можно излечить, но в WinSock можно отработать все до мелочей, управлять всей передачей, экономить трафик и т.д.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 30.11.2011, 15:44   #12
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Вот вы представьте, играете в CS и у одного клиента возникла какая-то ошибка, у сервера появился MessageBox (он остановил выполнение программы), и у остальных клиентов появилась ошибка TimeOut. Это конечно можно излечить, но в WinSock можно отработать все до мелочей, управлять всей передачей, экономить трафик и т.д.
Доводы сыроваты. Обвертка над WinSocket дает все, что нужно, без лишних проблем. Основное преимущество связано в скорости. Не затрачивается время на передачу параметров функций/процедур на более низкий уровень. На более низком уровне всегда будет выигрыш, даже на том же TCP/IP. А вот UDP выигрывает в скорости над TCP/IP за счет исключения подтверждения получения цельного пакета, т.е. кривой или потерялся, ну и ладно ждем следующие. TCP/IP клиент будет долбить сервер, пока не получит точный пакет, какой был отправлен, если пакет потерян, сервер будет снова слать тот же самый, пока не удостоверится, что пакет дошел в истинном виде до клиента.

Кроме того, определенность канала TCP/IP позволяет держать пользователей на "коротком поводке", а UDP не отключишь, можно только игнорировать, теряя время на проверке, дозволено этому пользователю быть в игре или нет.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 25.07.2013, 16:20   #13
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

... конец 2011 года. Эх было время... Недавно вспомнил о существовании этой темы.

Когда-то изучал IPv4 и IPv6. Обратил внимание на зарезервированный адрес 255.255.255.255 http://ru.wikipedia.org/wiki/IPv4 . Если кто-то наткнется на тему, не будет разочарован, как я 2 года назад. Скажу сразу, что этот способ не практиковал, поэтому прошу форумчан подтвердить его правильность/неправильность.

У приложения (игры или чего-то другого) есть сервер, он прослушивает порт=Port. Клиент отправляет пакет с "просьбой" на 255.255.255.255:Port. Если сервер запущен, он получит сообщение и назовет свой реальный ip, который клиент будет использовать в своих нуждах.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 25.07.2013, 16:38   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
... конец 2011 года. Эх было время... Недавно вспомнил о существовании этой темы.

Когда-то изучал IPv4 и IPv6. Обратил внимание на зарезервированный адрес 255.255.255.255 http://ru.wikipedia.org/wiki/IPv4 . Если кто-то наткнется на тему, не будет разочарован, как я 2 года назад. Скажу сразу, что этот способ не практиковал, поэтому прошу форумчан подтвердить его правильность/неправильность.

У приложения (игры или чего-то другого) есть сервер, он прослушивает порт=Port. Клиент отправляет пакет с "просьбой" на 255.255.255.255:Port. Если сервер запущен, он получит сообщение и назовет свой реальный ip, который клиент будет использовать в своих нуждах.
броадкасты часто не любят и режут.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.07.2013, 17:01   #15
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
броадкасты часто не любят и режут.
Я больше способов не вижу.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 25.07.2013, 18:57   #16
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Цитата:
Я больше способов не вижу.
удаленный сервер с фикс. ip (впс/вдс за 200руб. мес) + клиент(ы) игры.
в клиенте фиксируется ип сервера и он знает куда подключаться при запуске.
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 25.07.2013, 19:12   #17
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
удаленный сервер с фикс. ip (впс/вдс за 200руб. мес) + клиент(ы) игры.
в клиенте фиксируется ип сервера и он знает куда подключаться при запуске.
Вопрос в 2011 году стоял так. Как CS находит сервера по LAN? Уж удаленный сервер на роутерах они точно не ставят.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 26.07.2013, 16:16   #18
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Вопрос в 2011 году стоял так. Как CS находит сервера по LAN? Уж удаленный сервер на роутерах они точно не ставят.
LAN легко расшаривается по списку участников, а вот NET - это проблема всегда. Обычно, есть некий сервер раздачи IP, на него по известному адресу и порту подключаются пользователи, и видят списки IP готовых серверов. При выборе сервера идёт перенаправление, т.е. клиент забирает IP из списка и коннектится на него. В любой момент можно написать в командной строчке контекстного меню "connect {IP-адрес}: {порт}", клиент игры покинет текущий сервер и подключится на указанный. В Quake III Arena так часто делают, чтобы не тратить время. Но если листовой сервер лежит, то новичок будет в одиночестве, ...только бывалые будут вводить известный им IP и играть как обычно, даже не зная, что листовой сервер упал.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры FilteR Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 12.12.2010 19:08
проблемы сетевой игры sashonk Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 31.08.2010 14:42
Создание сетевой игры с помощью ТClienSocket, TServerSocket Vitamine Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 23.02.2010 18:18
создание сетевой БД Prowler БД в Delphi 2 09.01.2007 14:23