Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 2
1

Реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT

29.03.2015, 22:15. Показов 5005. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT.
Пока пытаюсь проверить в "ручном" режиме. Оба компа отправляют запрос на STUN-сервер, и получают от него ответ о виде NAT и внешний IP и порт (в данном случае, у обоих Port_Restricted_Cone, preserves ports, 1-й - 192.162.143.109:6665, 2-й - 46.119.203.241:9000).
После этого вношу соответствующие данные настройки программы и каждый из компьютеров отсылает циклически UDP сообщения и пытается принять входящие:

1-й - через свой порт 6665 на 46.119.203.241:9000
2-й - через свой порт 9000 на 192.162.143.109:6665

по идее, первые из данных сообщений должны пропасть, но последующие начать приходить.

Но сообщения не доходят.

Что я не так делаю или что не так понимаю?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 22:15
Ответы с готовыми решениями:

Организация передачи данных между двумя компьютерами
Меня интересуют методы передачи данных от компьютера к компьютеру без посредников, TCP/IP и портов.

TCP hole punching не работает
Привет! Пытаюсь реализовать в своей программе данную (TCP hole punching) технологию. Что...

Мессенджер для передачи сообщений напрямую между компьютерами
Вообщем посоны. Не уверен, что я по адресу, если что модератор перенесет. Меня интересует...

Написать функцию для вычисления интервала времени в секундах между двумя моментами, находящимися внутри двенадцатичасового цикла
Напишите функцию, которая воспринимает как три целых аргумента (часы, минуты и секунды) и...

2
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.03.2015, 22:28 2
Лучший ответ Сообщение было отмечено Olexiy как решение

Решение

Olexiy, ответ от STUN'а приходит правильный? Должно быть что-то в таком духе:
C#
1
2
3
4
5
6
7
8
string address = String.Empty;
udpClient = new UdpClient();
udpClient.AllowNatTraversal(true);
ResultSTUN result = ClientSTUN.Query("stun.ekiga.net", 3478, udpClient.Client);
if (result.NetType == UDP_BLOCKED) 
  /* обработка ошибки */ 
else 
  address = result.PublicEndPoint.ToString();
Добавлено через 1 минуту
http://www.codeproject.com/Art... TUN-Client
0
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 2
29.03.2015, 22:42  [ТС] 3
Да, именно такого клиента использую. Может даже с той же страницы
0
29.03.2015, 22:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 22:42
Помогаю со студенческими работами здесь

Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Всем привет! есть условие: Реализовать работу очереди передачи сообщений между двумя ПК в...

Низкая скорость передачи данных между компьютерами
Привет. Недавно в квартире появился ноутбук, и я купил роутер DLink DIR-815/AC. Имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru