forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Сеть в играх. (http://forum.boolean.name/showthread.php?t=9816)

impersonalis 16.12.2009 20:57

Ответ: Сеть в играх.
 
Цитата:

Сообщение от NitE (Сообщение 124573)
impersonalis, баян...

учи олбанскей (ну никак не клеится слово "боян" сюда).

St_AnGer 29.04.2011 09:51

Ответ: Сеть в играх.
 
Доброго времени суток, Булчане! Что бы не плодить темы спрошу тут.
Написал программу сервер и программу клиент. Основаны на UDP протоколе.
И вот собственно сам вопрос - что нибудь реально сделать если у меня закрыты для доступа из вне нужные мне порты (как оказалось после проверки - закрыты они у меня все, но нужны конкретно - 57015 и далее)? Потому что от меня пакеты исходят прекрасно и доходят до сервера, а вот от сервера ко мне на клиент ничего пробиться не может. Теоретически понимаю что наверно я сижу за NAT'ом (даже не наверно, а 100500% уверенности в этом), но как его обойти...

Обрыл весь форум в поисках информации по протоколу UDP и вообще созданию сетевых приложений (огромное спасибо Tadeus'у за хорошие туториалы по TCP/IP и UDP, и всем кто в далёком 2009-м отписывал конкретно в этой теме), долго курил статью о работе стевой части Valve Source Engine, вынес для себя много полезного. Даже помучал IdTech 2 (что тоже оказалось очень полезно, так как текущую структуру сервера своего постарался взять от туда). Но конкретно по этой проблеме так ничего и не увидел.

Используемый провайдер - мегафон (не смейтесь только, другим интернетом не располагаю в данный момент). В Counter-Strike и World of Tanks через него играю свободно (ну, относительно, пинг высоковат... но дело не в этом), а они работают на UDP протоколе. Т.е. проблема решаема, просто я не знаю где и с чего начать поиск.

Мне нужна только теория, ненужно исходных кодов (хочу разобраться, хотя если есть исходники - тоже не откажусь). Буду очень признателен если поможете, форумчане.

зыЖ сервер и клиенты общаются по локальной сети вполне себе успешно, хотя сервер нужно переделывать... При количестве клиентов 2+ данные клиентам отправляются ну очень уж долго. Знаю из за чего, но сейчас не это основная проблема. Хотя бы двух людей соединить через тырнет для начала - и можно будет работать дальше...

baton4ik 29.04.2011 10:20

Ответ: Сеть в играх.
 
Дело в том, что у тебя локальная сеть, поэтому, когда клиент обращается к серверу по ip, непонятно, какому компьютеру из локальной сети передавать запрос. Для этого в роутерах есть возможность перенаправлять порты порты (forwarding). Гуглишь гайд для своего роутера (или разбираешься сам) и настраиваешь перенаправлание на нужный тебе внутренний ip.
К примеру, в моей UDP-поделке сервер использует порт 25565, в роутере настроено перенаправление на внутренний IP 192.168.1.100

Nex 29.04.2011 10:36

Ответ: Сеть в играх.
 
Объясните как с помощью линейного метода устранить эффект запаздывания.
Цитата:

Новое Положение =Старое Положение + Скорость*Время
Вроде бы все просто, но ничего не выходит.. И что есть "Время".. пинг?

St_AnGer 29.04.2011 19:39

Ответ: Сеть в играх.
 
Цитата:

Сообщение от baton4ik (Сообщение 186986)
Дело в том, что у тебя локальная сеть, поэтому, когда клиент обращается к серверу по ip, непонятно, какому компьютеру из локальной сети передавать запрос. Для этого в роутерах есть возможность перенаправлять порты порты (forwarding). Гуглишь гайд для своего роутера (или разбираешься сам) и настраиваешь перенаправлание на нужный тебе внутренний ip.
К примеру, в моей UDP-поделке сервер использует порт 25565, в роутере настроено перенаправление на внутренний IP 192.168.1.100

учимся внимательно читать пост... У меня Мегафон, а это оператор сотовой связи. Я просто привёл пример, что по локалке всё пашет. А по инэту - нет. Мегафон и ноут соединены напрямую, без всяких роутеров!

Crayzi 30.04.2011 21:53

Ответ: Сеть в играх.
 
Вложений: 1
Цитата:

Сообщение от St_AnGer (Сообщение 186983)
Доброго времени суток, Булчане! Что бы не плодить темы спрошу тут.
Написал программу сервер и программу клиент. Основаны на UDP протоколе.
И вот собственно сам вопрос - что нибудь реально сделать если у меня закрыты для доступа из вне нужные мне порты (как оказалось после проверки - закрыты они у меня все, но нужны конкретно - 57015 и далее)? Потому что от меня пакеты исходят прекрасно и доходят до сервера, а вот от сервера ко мне на клиент ничего пробиться не может. Теоретически понимаю что наверно я сижу за NAT'ом (даже не наверно, а 100500% уверенности в этом), но как его обойти...

Обрыл весь форум в поисках информации по протоколу UDP и вообще созданию сетевых приложений (огромное спасибо Tadeus'у за хорошие туториалы по TCP/IP и UDP, и всем кто в далёком 2009-м отписывал конкретно в этой теме), долго курил статью о работе стевой части Valve Source Engine, вынес для себя много полезного. Даже помучал IdTech 2 (что тоже оказалось очень полезно, так как текущую структуру сервера своего постарался взять от туда). Но конкретно по этой проблеме так ничего и не увидел.

Используемый провайдер - мегафон (не смейтесь только, другим интернетом не располагаю в данный момент). В Counter-Strike и World of Tanks через него играю свободно (ну, относительно, пинг высоковат... но дело не в этом), а они работают на UDP протоколе. Т.е. проблема решаема, просто я не знаю где и с чего начать поиск.

Мне нужна только теория, ненужно исходных кодов (хочу разобраться, хотя если есть исходники - тоже не откажусь). Буду очень признателен если поможете, форумчане.

зыЖ сервер и клиенты общаются по локальной сети вполне себе успешно, хотя сервер нужно переделывать... При количестве клиентов 2+ данные клиентам отправляются ну очень уж долго. Знаю из за чего, но сейчас не это основная проблема. Хотя бы двух людей соединить через тырнет для начала - и можно будет работать дальше...


Если ничего не получится то попробуй RakNet, оно вроде с NAT-ом дружит...

St_AnGer 30.04.2011 23:21

Ответ: Сеть в играх.
 
Crayzi, большое спасибо за указание на этот враппер! Ответ от сервера пробился даже через два роутера со стороны клиента! Жалко нельзя ставить сотню спасибок, поставил бы сразу! :)


Часовой пояс GMT +4, время: 22:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot