Я видел и читал много похожих вопросов, а также соответствующие статьи в Википедии ( NAT traversal , STUN , TURN , Пробивка отверстий TCP ), но подавляющее количество информации на самом деле не помогает мне с моей очень простой проблемой:
Я пишу приложение P2P и хочу, чтобы два пользователя моего приложения за NAT могли подключаться друг к другу. Соединение должно быть надежным (сопоставимым с надежностью TCP), поэтому я не могу просто переключиться на UDP. Решение должно работать в современных общих системах без перенастройки. Если это поможет, решение может включать в себя подключаемое стороннее устройство, если ему не нужно проксировать все данные (например, для получения внешних (WAN) IP-адресов одноранговых узлов).
Что касается Я знаю, что у меня единственный вариант - использовать "надежную UDP" библиотеку + UDP перфорация . Есть ли для этого библиотека (C / C ++)? Я нашел enet в вопросе, связанном с , но он заботится только о первой половине решения.
Что-нибудь еще? Вещи, на которые я смотрел: