Почему не работает собственная реализация 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)
  • Вопрос задан
  • 3556 просмотров
Решения вопроса 1
maxaon
@maxaon
Кажется у вас неправильный протокол.
www.brynosaurus.com/pub/net/p2pnat
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maxaon
@maxaon
habrahabr.ru/post/142858
Внизу ссылка на библиотеку
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы