Задать вопрос

Почему не работает собственная реализация UDP Hole Punching?

Не хочет работать моя реализация UDP hole punching.

Участвуют:
Сервер (публичный)
Клиент 1 (за NATом)
Клиент 2 (за NATом)

Как я делаю:
1) Клиент 1 запрашивает у Сервера прямое соединение с Клиентом 2. (они уже подключены к нему по TCP)
2) Сервер командует подключится обоим, с помощью UDP, к нему. Фиксирует уделенные адреса обоих UDP соединений.
3) Сервер посылает команду Клиенту 2, принять UDP соединение. (При этом Клиент 2 также получает адрес Клиента 1. На который он посылает пакет, да бы создать на роутере временное правило)
4) Сервер посылает команду Клиенту 1 подключится с того же адреса(которого он подключился к серверу, и на который отправил пакет Клиент 1) к Клиенту 2.

Пишу везде UDP соединение, т.к. использую программную надстройку надежного UDP соединения. (Lidgren.Network)
  • Вопрос задан
  • 3565 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    1C-разработчик
    8 месяцев
    Далее
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
Решения вопроса 1
maxaon
@maxaon
Кажется у вас неправильный протокол.
www.brynosaurus.com/pub/net/p2pnat
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maxaon
@maxaon
habrahabr.ru/post/142858
Внизу ссылка на библиотеку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы