Я столкнулся с интересной проблемой.В основном у меня есть 2 мобильных телефона, которые оба находятся за NAT.Я хочу обмениваться данными напрямую между двумя устройствами по протоколу UDP.
Я знаю, что если я инициирую соединение телефонов с сервером, то я могу передать данные обратно по этому соединению на телефон (т.е. отправить их обратно стот же порт, который получил сообщение на тот же ip и порт, с которого оно было получено).Так что я легко могу общаться между двумя устройствами, подключив оба телефона к серверу.Затем отправка данных на сервер и их перенаправление на телефоны.Это позволяет обойти любые проблемы с обходом NAT, с которыми я могу столкнуться.
Однако я бы предпочел просто использовать сервер, чтобы направить 2 устройства друг на друга, а затем позволить им обмениваться данными напрямую.Как бы я поступил так?Разве это возможно без использования чего-то вроде uPnP?
Любая помощь будет сильно оценена!
Редактировать : я нашел этот документ http://www.brynosaurus.com/pub/net/p2pnat/ Это похоже на шпилькуперевод - это то, что мне нужно, но он не выглядит широко поддерживаемым.Интересно, насколько хороша поддержка интернет-провайдера для UPnP?