-
> xss22 (29.03.2012 10:35:17) [17]
Не вижу ни каких проблем, если надо отвечать, то укажать с сокете куда, или
указать в сообщение куда, или договориться об фиксированых портах и адресах.
Сообщения принимает не клиет, а сервер.
-
> есть потребность, чтобы некоторые клиенты могли принимать
> UDP пакеты от других клиентов
> как постоить STUN сервер
Его не обязательно строить. Можно задействовать любой из публично доступных в Тырнете.
А если приспичило построить его в рамках
своего сервиса, то отправная точка -
http://ru.wikipedia.org/wiki/STUN
-
Сокет умирает сразу после передачи! Ответить на тот же сокет не возможно.
Но никто не мешает запусить UDP Server, котрый известен одним из трех указаных способов, и принимать на нем сообщения. А на серверной стороне клиент.
-
-
> Это получается нужно 2 разных машины?
Не получается.
Достаточно одной, но с двумя внешними стат.адресами.
> На одном компе можно сделать? и в рамках одной программы
Можно, см. выше.
Зачем тебе выеживаться со своим stun'ом, если провайдер выделил тебе один адрес и платить за второй нет желания ?
Воспользуйся существующими публичными stun-сервисами.
-
А как можно обойти симметричный тип NAt ?
-
ты со своим коническим сначала разберись)
-
так в том то и дело, что у меня симметричный NAT. Отсюда то и все беды!
и как его можно обойти?
-
-
-
ну если верить этой программулине, то stun тебя не спасет.
-
> ну если верить этой программулине, то stun тебя не спасет.
да уже понял, что STUN не может обойти симметричный NAT. Какой еще есть выход?
-
Симметричный NAT - наиболее распространенный NAT.
И как же его обходить?
-
> xss22 (30.03.2012 11:49:32) [32]
За всю жизнь не сталкивался и не использовал, так что слухи о
распространение очень сильно преувеличены.
-
А никак.
Только через сервер-посредник.
В противном случае проблема решается только конфигурированием роутера - DMZ, виртуализация сервиса (aka проброс порта), UPnp
-
> слухи о распространение очень сильно преувеличены
Эт точно.
-
-
Проверить-то недолго)
Посылаешь сообщение своему серверу от клиента A (который за НАТом), сервер тебе показывает адресA:портA отправителя.
Тут же быстренько в темпе ошпаренного кота:
- посылаешь сообщение от клиента B (адресB:портB) клиенту A (адресA:портA).
Если сообщение дошло, то это конусный НАТ.
- посылаешь сообщение от клиента B (адресB:портA) клиенту A (адресA:портA).
Если сообщение дошло, то это порт-рестриктед НАТ.
Иначе это симметричный НАТ.
Иначе
-
А где можно найти готовый компонент DELPHI, работающего со STUN серверами?
-
самому состряпать-то не судьба ?
протокол ведь примитивный ..