ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 июля
574984 Топик полностью
Николай Коровин (23.01.2015 02:40 - 02:53, просмотров: 116) ответил OlegPowerC на А если с обоих сторон динамический внешний ip? Тут только dyndns наверное поможет
Дак для этого STUN и спрашивают. "Я кто сегодня?" Потом по любому левому каналу (хоть TURN, хоть e-mail, хоть SMS) передают его на вторую точку и можно начинать прицельно долбить NAT, выясняя, что он умеет. (ВСЕМ ATTENTION! ВНУТРИ КОНЦЕПТ). Вообще, с точки зрения "правильного программирования по-говяжьи", о котором я люблю тут позвиздеть-повыпендриваться, эта задача должна быть типовой и решаться на уровне системной библиотеки. Какое-нибудь там Ind2Dir.dll, которое требует от прикладной программы предоставить две функции обращения к "левому каналу": "отправить" и "посмотреть, не пришло ли чего". Ну, и на всякий случай пользоваться только ими только для строк из A-Z пробел 0-9. После этого две Ind2Dir с двух сторон долбят NAT, обзванивают любой известный STUN и находят любой способ прямого проброса: TCP, UDP, хоть IPv6. Любой, который есть. Добившись прямой связи, они сами предоставляют прикладной программе две функции: "отправить" и "проверить/подождать, не пришло ли чего". Отправка и приём производится пакетами произвольно-разумного размера, за контроль ручается библиотека, передача идёт в фоновом режиме (функции, если не указано иное, возвращаются сразу), но в случае проблем с каналом при попытке отправить что-то новое, пока старое ещё не ушло (ну то есть пока не доставлено достоверно, с контролем), следующий вызов "отправить" не возвратится, пока не разрешится предыдущий или не истечёт таймаут (который можно и в ноль поставить). Замесить, нарубить, проверить контрольные суммы, переотправить кусочек и т. д. -- половые трудности библиотеки. Такая библиотека, один раз решив этот геморрой, может использоваться универсальным образом практически всегда. Особенно в этих ваших асечках, в которых каждый первый мудак пишет свой, ни на что не похожий протокол доставки аудио/видео/файлов, в результате ничего ни с чем не работает, а хомячки так и сидят в богомерзком скайпе. Кстати, ТЗ на библиотеку реальное. Критикуйте, если что-то не предусмотрено, или скажите, если уже есть что-то подобное.