forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Маршрутизация пакетов (UDP) (http://forum.boolean.name/showthread.php?t=9385)

ІГРОГРАЙКО 09.10.2009 10:47

Маршрутизация пакетов (UDP)
 
У меня наболел вопрос:dontknow: . Так как же мне передать пакет от одного компа в подсети провайдера другому компу в подсете другого провайдера?
Я хотел бы узнать существует ли формат заполнения пакета для маршрутизации. Протокол UDP. Помогите пожалуйста!:SOS:

FDsagizi 09.10.2009 15:52

Ответ: Маршрутизация пакетов (UDP)
 
если нету белого Ip то увы.

ІГРОГРАЙКО 09.10.2009 16:03

Ето что значит получаетса, на Блице или на Ксорсе невозможно создать онлайн игру? :4to:

Я понимаю что передать пакет с выделенного ІР на выделенный ІР совсем не сложно. Но эсли делать Онлайн игру то естественно большинство игроков не имеют выделенного ІР. Что делать? Есть ли в кого какие небудь идеи?

Есть такая штука как VPN но как её запустить на Блице я незнаю:dontknow:

SBJoker 09.10.2009 16:39

Ответ: Маршрутизация пакетов (UDP)
 
Эх..ни на каком языке нельзя создать онлайн игру без помощи из вне, такой как сервер игры например. Ибо более 90% пользователей сидят за NAT который по своей природе не пропускает входящие соединения. Да и как ему понять кому пакет если у всех ip один :) .
Делается на сервере простейшая програмка которая ловит входящий запрос на создание игры и ведёт база созданных игр, те кто подключаются к игре просто скачивают с сервера список созданых игр. Потом сервер занимается переадресацией игрового трафика между игроками. Которые сами инициировали подключение к серверу что не противоречит правилам NAT.

ІГРОГРАЙКО 09.10.2009 17:02

Ответ: Маршрутизация пакетов (UDP)
 
Цитата:

Сообщение от SBJoker (Сообщение 121106)
Потом сервер занимается переадресацией игрового трафика между игроками. Которые сами инициировали подключение к серверу что не противоречит правилам NAT.

Большое спасибо за первое полезное сообщение:) Но хотелось бы мне взнать побольше...
Структура соединения меду сервером и клиентами должна выглядить так:

1.Сервер (с выделенным ІР) получает пакет от клиента.
2.Естественно сервер отсылает клиенту ответ на ІР с которого пришло сообщение.
3.Клиент не получает ответ потому что етот пакет был отправлен сервером на удаленной ІР адрес провайдера, а к клиенту в подсети он не дошол.
4.Клиент ругаетса что не удаетса соединитса с Сервером.

Вот такая драма:"(

jimon 09.10.2009 18:29

Ответ: Маршрутизация пакетов (UDP)
 
ІГРОГРАЙКО
у сервера есть внешний IP, клиент сидит на NAT'ом
в таком случае сервер не может послать подключение к клиенту, но клиент может инициализировать подключение к серверу

идея простая, клиент конектится к серверу и работает в обычном режиме

ІГРОГРАЙКО 09.10.2009 23:37

Ответ: Маршрутизация пакетов (UDP)
 
Цитата:

Сообщение от jimon (Сообщение 121112)
ІГРОГРАЙКО
у сервера есть внешний IP, клиент сидит на NAT'ом
в таком случае сервер не может послать подключение к клиенту, но клиент может инициализировать подключение к серверу

идея простая, клиент конектится к серверу и работает в обычном режиме

Извените если не так понял. Ты говориш подключитса, тоесть использовать протокол TCP.
Код:

OpenTCPStream (ip$,port)
А зделать UDP можно?

jimon 10.10.2009 00:06

Ответ: Маршрутизация пакетов (UDP)
 
ІГРОГРАЙКО
хым, что-то не учёл скудные сетевые возможности самого blitz3d ^_^
попробуй использовать raknet http://repeatuntil.free.fr/raknet/

ІГРОГРАЙКО 10.10.2009 00:14

Ответ: Маршрутизация пакетов (UDP)
 
Оооооо:super::rolleyes: Спасибочки тебе большое!!!:compl:
Будем учитса новому:moil:

impersonalis 10.10.2009 03:38

Ответ: Маршрутизация пакетов (UDP)
 

Цитата:

(thanks to Jimon)
видим мы на странице.. ДядяДима! даже не похвасталсо, а ведь мы должны знать своих героев =\

Tormaz 12.11.2009 23:08

Ответ: Маршрутизация пакетов (UDP)
 
Тупо раздели их по портам , каждому юзверу выделяй свой порт из выделенного диапазона. Настройте нат .
Если нет то в пакет суй инфу кому она принадлежит и клиент уже пусть смотрит ему или нет пакет. А инициализируй или на стороне сервера или на стороне клиента соединение все одни яйца. Пакет от сервера к клиенту все равно должен дойти до адресата и быть идентифицирован. Даже широкие возможности ракнет не помогут ..

LLI.T.A.L.K.E.R. 16.05.2010 10:30

Ответ: Маршрутизация пакетов (UDP)
 
А как точно узнать истинно внешний IP (особенно когда он динамический) и + при использовании роутера.
Искал примеры, но в итогах выходили локальный IP или роутера: 127.0.0.** и 192.168.*.*
А вот узнавать программно как например на http://2ip.ru не удавалось пока.

Arton 16.05.2010 13:04

Ответ: Маршрутизация пакетов (UDP)
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 147021)
А как точно узнать истинно внешний IP (особенно когда он динамический) и + при использовании роутера.
Искал примеры, но в итогах выходили локальный IP или роутера: 127.0.0.** и 192.168.*.*
А вот узнавать программно как например на http://2ip.ru не удавалось пока.

Вот тебе статья - Статья. Есть какой-то более краткий пример но я его не могу найти, найду дам ссылку...

Damp 16.05.2010 21:29

Ответ: Маршрутизация пакетов (UDP)
 
Можно посмотреть:
http://www.gamedev.ru/code/forum/?id=128784&page=17
там есть рабочий пример на блице соединения nat-nat (используется STUN). Примерно также работают скайп, хамачи и т.д.

Если коротко: клиент1 и клиент2 за натом, им нужно узнать свои внешние ip и порты (для чего есть публичные сервисы STUN) и передать их друг-другу доступным способом (аська, web или др.). Далее клиенты посылают первые "стартовые" пакеты друг-другу, которые не пройдут, но "познакомят" свои наты с нужными ip:port. После чего уже можно слать все что угодно.
Такой канал будет жить до ближайшей паузы 20-30 сек, после такой паузы нат может забрать порт (время таймаута устанавливает провайдер).

Связь удивительно стабильная выходит, ни одного пакета не пропало в тестах, даже на gprs.


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

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