Вырез punch hole что это за программа на андроид
Парни с XDA заморочились и собрали в одном материале все варианты размещения фронтальной камеры на смартфонах сегодня. Чёлки, вырезы, слайдеры и т.д. Мы подготовили для вас вольный перевод этого материала. Оказалось познавательно.
Последнее поколение Android-смартфонов продвинуло эволюцию отверстий экранов смартфона. Одни телефоны перешли на каплевидный вырез под фронтальную камеру, другие делают вырез в стиле дырокола, а некоторые телефоны и вовсе оснащены механическим слайдером или так называемой выдвижной камерой. Давайте ознакомимся с различными стилями вырезов, которые сейчас популярны и попробуем предположить, что ждет Android в будущем.
Такие темы мы, кстати, постоянно обсуждаем в нашем Telegram-канале. Там ещё много всего интересного. Стоит подписаться 😉
Стиль дырокола
Помните, в школьные годы для того, чтобы поместить в папку большое количество бумаги приходилось использовать дырокол, с помощью которого в боковой части бумаги проделывались три отверстия. Отверстие, сделанное дыроколом в верхнем углу бумаги очень похоже на отверстие, в котором находится селфи-камера смартфона. Именно отсюда появилось название «hole punch notch», что переводится как вырез, который делает дырокол.
Измени Вырез Экрана
Смысл перемещения селфи-камеры в отверстие в экране чисто декоративный и заключается в том, чтобы дисплей максимально тесно прилегал всеми четырьмя углами к лицевой панели телефона. Это один из самых распространенных вариантов размещения селфи — камеры во всех флагманских телефонах, которые появились в 2019 году. Чуть ранее мы рассматривали версию, почему чёлки в смартфонах — зло.
Классическая «челка»
Классическая «челка» впервые появилась на Essential Phone. Идею быстро подхватили другие производители. В таком стиле выреза обычно размещается селфи-камера, верхний динамик, датчики, а иногда и дополнительная камера. Поначалу этот вырез высмеивали, посчитав его нелепым. Pixel 3 XL наделал много шума, как телефон с одним из самых уродливых и неприятных вырезов, которые мы когда-либо видели.
Хотя подобный дизайн вырезов является самым ранним, его все еще можно увидеть во многих современных телефонах, таких как LG V50 ThinQ.
Следующий вырез претерпел некоторую эволюцию, и теперь он все чаще делается в виде капли. Это аналогичная концепция, но гораздо меньшая по размеру и менее навязчивая. Некоторые из самых популярных телефонов с каплевидными вырезами — это OnePlus 6T, Realme 2 Pro, Xiaomi Mi 9 и часть устройств серии Samsung Galaxy A и M.
Предназначение многих приложений для смартфона несет развлекательный характер. Однако некоторые из них в значительной степени помогают пользователю, оснащая телефон целым рядом полезного функционала. Приложение TalkBack относится к последним. Занимались производством данного приложения сотрудники компании Гугл, которые сделали его бесплатным и простым в установке.
Для некоторых смартфонов установка приложения предусмотрена заранее, то есть пользователь получает гаджет уже с ним. Так что это за программа на Андроид Talkback? По заявлениям производителя, приложение предназначено строго для людей с особенными потребностями, а именно тем, кто имеет слабое зрение и нуждается в дополнительной помощи. Суть состоит в озвучивании любых действий, которые пользователь совершает на смартфоне. Практически все современные аппараты имеют установленную программу изначально, и она подлежит постоянному стандартному обновлению.
Секретная НАСТРОЙКА ДЫРКИ КАМЕРЫ Xiaomi
Что такое TalkBack на Андроид и его основные функции
Поскольку основное описание программы рассмотрено выше, разберем, какие функции приложение выполняет. Для чего нужен talkback на Андроид:
Уточним, что программа имеет большое количество разнообразных функций, однако они не такие распространенные как описанные выше. Конечно, это достаточно специфическое приложение, но оно станет хорошим помощником при необходимости.
Рассмотрев, что такое Talkback на Андроид, разберем включение и отключение программы.
Как отключить приложение?
В некоторых смартфонах данное приложение включено автоматически, и некоторым людям такое озвучивание может прийтись не по вкусу. Поэтому возникает логический вопрос: как его отключить?
Для того чтобы проделать такую манипуляцию, следуете алгоритму:
- пройдите во вкладку «Настройки» вашего гаджета;
- найдите пункт «Специальные возможности»;
- отыщите приложение Talkback;
- выключите его ползунком в режим OFF.
Проделав действия наоборот, можно заново включить программу. Для удобства пользования приложением можно найти подробную инструкцию, которая написана просто и понятно. Также в рамках инструкции содержится краткое обучение, которое проводится предварительно перед использованием.
Самыми полезными возможностями считаются:
Кроме применения приложения для людей с ограниченными возможностями, оно подойдет и для водителей, которые не могут отвлекаться за рулем. Такое голосовое управление облегчает использование смартфона, позволяет звонить и набирать текст. Также озвучивание имени и номера звонящего, позволяет решать, нужно ли отвечать или абонент может подождать. При этом водитель не отвлекается на экран.
Следует попробовать пользоваться Talkback, чтобы понять, какое разнообразие функций предлагает разработчик, поскольку некоторые из них обязательно станут помощниками в повседневной жизни любого человека.
Предлагаю вашему вниманию небольшой обзор приложения, которое позволяет скрыть вырез экрана. Можете назвать вырез монобровью, можете ещё как-нибудь, но надеюсь, что смысл понятен.
То, что вы прочитаете, будет актуально не очень долго, т.к. уже в некоторых прошивках есть возможность именно так скрыть вырез, как это можно сделать с помощью этого приложения. Для тех, у кого моноброви нет, читайте вторую часть обзора о том, как сделать так, чтобы приложение не выгружалось из памяти при очистке.
Покажу на примере Redmi Note 7. На Mi 8 результат был аналогичный. Никого не удивлю тем, как выглядит экран с вырезом в виде капли
Image1.jpg (238.62 KB, Downloads: 86)
2019-07-27 18:40:54 Upload
Конечно, в настройках можно скрыть вырез, но пока только так, как на фото, т.е. строка состояния сдвигается вниз (повторю, что это не касается новых китайских еженедельных прошивок)
Image2.jpg (292.25 KB, Downloads: 84)
2019-07-27 20:03:34 Upload
Это легко делается в настройках безграничного экрана.
Image3.jpg (358.51 KB, Downloads: 78)
2019-07-27 19:15:49 Upload
Но зачем тогда покупать смартфон с вырезом, если его вот так скрывать? Гораздо лучше, когда строка состояния будет видна, если вырез будет скрыт. Т.е. вот так, например:
Image4.jpg (239.67 KB, Downloads: 87)
2019-07-27 19:46:38 Upload
Image5.jpg (76.94 KB, Downloads: 68)
2019-07-27 20:54:59 Upload
Тут всё просто, ставим галочку, выбирая высоту выреза. Но есть и дополнительные настройки. Вы можете изменить вид скрытия. Тут есть и города, и природа, и прочая ерунда. Я остановился на выборе по умолчанию, хотя трава вроде тоже неплохо выглядит.
Image6.jpg (138.17 KB, Downloads: 74)
2019-07-27 21:08:29 Upload
Image7.jpg (152.08 KB, Downloads: 78)
2019-07-27 21:13:31 Upload
Image8.jpg (152.51 KB, Downloads: 77)
2019-07-27 21:13:32 Upload
Есть и настройка округления углов экрана. Не хочу ругать Xiaomi, но в смартфоне Redmi Note 7, который все хвалят как нечто супер совершенство, округление углов экрана просто чудовищное. Это кому в голову пришло так сделать? Понять не могу. Может быть, для снижения цены на 300 рублей?
Не знаю.
В приложении Notch Remover вы можете выбрать необходимое округление, причём для каждого угла. Вдруг вам нужно округлить только правый верхний))) Размер округления можно выбрать. Выбрал вот такой, как на скриншоте
Image9.jpg (72.44 KB, Downloads: 74)
2019-07-27 21:22:52 Upload
Теперь к очень важному моменту перейду. При очистке это приложение удалится из памяти. Нужно будет его заново запускать.
Как сделать так, чтобы приложение не выгружалось из памяти при очистке?
Это просто. Для начала ставим его в автозапуск (Настройки — Разрешения — Автозапуск). Теперь запускаем приложение Безопасность
Security1.jpg (273.74 KB, Downloads: 74)
2019-07-27 21:41:58 Upload
Жмём на Ускорение (Очистка памяти).
Security2.jpg (191.14 KB, Downloads: 70)
2019-07-27 21:48:00 Upload
И вот тут в настройках (шестерёнка в правом верхнем углу) выбираем исключение приложения в случае очистки памяти.
Security4.jpg (64.13 KB, Downloads: 72)
2019-07-27 21:53:02 Upload
Security5.jpg (244.62 KB, Downloads: 80)
2019-07-27 21:53:04 Upload
Внимание! Если вы будете производить глубокую очистку памяти, то приложение, конечно, будет из памяти выгружено. При обычной очистке или
после перезагрузки приложение будет всегда работать. Вы можете применить исключение для любого вашего приложения, если хотите, чтобы оно всегда было запущено.
Самым первым смартфоном, обладающим вырезом в экране, стал выпущенный осенью прошлого года iPhone X. Сейчас, спустя почти полгода с того момента, многие мобильные устройства обладают такой же особенностью, а вскоре их станет еще больше. Компания Apple строго-настрого запретила разработчикам ПО каким-либо образом пытаться скрыть вырез, однако у производителей Android-смартфонов другое мнение на этот счет. Они не только разрешают делать это, но еще и поощряют.
К примеру, в смартфоне Huawei P20 Pro имеется вырез, а при помощи специальной функции в прошивки EMUI 8.1, которая установлена на него «из коробки», его можно скрыть на системном уровне. Это удобно и, однозначно, полезно, однако такую возможность добавили в свои телефоны далеко не все производители. Предоставить пользователям такую опцию решил один из разработчиков с форума XDA, который создал приложение под названием Nacho Notch. Оно распространяется бесплатной, а его исходный код доступен на GitHub всем желающим.
Разработчик, создавший Nacho Notch, сделал приложение полностью бесплатным и даже не стал добавлять в него рекламу. Как он уверяет, он сам купил себе телефон с вырезом, но не нашел в прошивке функции, чтобы скрыть его. Именно в этот момент он и решил создать ПО, которое могло бы скрыть «монобровь» в любом смартфоне с такой особенностью, работающем на базе операционной системы Android.
Программа Nacho Notch делает цвет панели уведомлений черным в принудительном порядке, благодаря чему, за счет особенности OLED- и AMOLED-экранов, пользователь перестает видеть вырез в дисплее. Это касается не только визуального восприятия, но и скриншотов, которые также принимают вид таких, словно они сделаны на обычный телефон без какой-либо «моноброви» в верхней части. Данное ПО однозначно будет пользоваться большой популярностью, а разработчик обещает регулярно вносить в него изменения, направленные на решение каких-либо проблем и недочетов.
Надоел вырез на экране? Конечно, его можно скрыть, благо большинство производителей смартфонов позаботились об этой небольшой, но очень важной функции. Но, что если хочется выделиться и настроить вырез по своему усмотрению?
В эту подборку попали лучшие приложения, которые позволяют кастомизировать вырез, или нотч, как он ещё называется, так, как нравится вам.
Notch Design
Notch Design позволяет изменять форму выреза путем заливки области вокруг него. Можно выбрать из нескольких десятков пиктограмм — некоторые из них можно получить, посмотрев рекламное видео. В настройках программы можно менять положение заливки и ее размер. Нам понравилось!
Notch Pie
Приложение создает окантовку вокруг выреза на вашем экране и превращает ее в индикатор заряда. Приложение работает с абсолютным большинством телефонов и позволяет выбрать форму, цвет и расположение индикатора батареи. Перед использованием предоставьте Notch Pie все запрашиваемые разрешения и проверьте, чтобы системный оптимизатор не останавливал его работу.
Notch Phone X
Notch Phone X «превращает» ваш смартфон в iPhone X, 11 или 12. Не понятно кому и зачем это нужно, ведь приложение можно использовать даже на телефонах, на которых вообще нет никаких вырезов
В любом случае выглядит это по меньшей мере необычно. Программа добавляет в область уведомлений черную полосу, которая имитирует вырез, который есть на Айфонах. Особенно реалистично это смотрится на экранах AMOLED, где черный цвет более глубокий. В Google Play программа набрала 4,5 баллов, а значит заслуживает вашего внимания.
Holey Light
Ещё одно приложение, которое создает индикатор заряда аккумулятора в виде окантовки вокруг выреза на вашем смартфоне. Поддерживаются различные анимации и режим Always On Display. Приложение работает только на телефонах Samsung и Google.
Источник: dr-web.ru
Лучшие приложения для настройки выреза на Андроид
Надоел вырез на экране? Конечно, его можно скрыть, благо большинство производителей смартфонов позаботились об этой небольшой, но очень важной функции. Но, что если хочется выделиться и настроить вырез по своему усмотрению?
В эту подборку попали лучшие приложения, которые позволяют кастомизировать вырез, или нотч, как он ещё называется, так, как нравится вам.
Notch Design
Price: Free
Notch Design позволяет изменять форму выреза путем заливки области вокруг него. Можно выбрать из нескольких десятков пиктограмм — некоторые из них можно получить, посмотрев рекламное видео. В настройках программы можно менять положение заливки и ее размер. Нам понравилось!
Notch Pie
Price: Free
Приложение создает окантовку вокруг выреза на вашем экране и превращает ее в индикатор заряда. Приложение работает с абсолютным большинством телефонов и позволяет выбрать форму, цвет и расположение индикатора батареи. Перед использованием предоставьте Notch Pie все запрашиваемые разрешения и проверьте, чтобы системный оптимизатор не останавливал его работу.
Notch Phone X
Price: Free
Notch Phone X «превращает» ваш смартфон в iPhone X, 11 или 12. Не понятно кому и зачем это нужно, ведь приложение можно использовать даже на телефонах, на которых вообще нет никаких вырезов
В любом случае выглядит это по меньшей мере необычно. Программа добавляет в область уведомлений черную полосу, которая имитирует вырез, который есть на Айфонах. Особенно реалистично это смотрится на экранах AMOLED, где черный цвет более глубокий. В Google Play программа набрала 4,5 баллов, а значит заслуживает вашего внимания.
Holey Light
Price: Free
Ещё одно приложение, которое создает индикатор заряда аккумулятора в виде окантовки вокруг выреза на вашем смартфоне. Поддерживаются различные анимации и режим Always On Display. Приложение работает только на телефонах Samsung и Google.
Вам также может понравиться
Лучшие файловые менеджеры на Андроид
27.03.2021
Лучшие аркадные гонки и автосимуляторы на Андроид
28.03.2021
Лучшие календари на Андроид
21.04.2021
Лучшие приложения для учебы
26.03.2021
Лучшие экранные клавиатуры на Андроид
11.04.2021
Источник: thebestphones.ru
Вырез punch hole что это за программа на андроид
Меню
ProPix OnePlus 8 Punch Hole Вырез Обои Премиум 1.0.2
5 / 5 — (2 голосов)
ProPix — это бесплатное приложение, которое имеет большую коллекцию обоев HD (высокой четкости) и 4K (UHD | Ultra HD), а также красивые обои Oneplus8 punch и Oneplus8pro punchhole (Cut Out), которые можно использовать для Oneplus8 pro.
Характеристики:
* Простой, легкий и быстрый: мы предоставляем простой в использовании, быстрый и простой для навигации пользовательский интерфейс
* Добавить ваши любимые: Добавить ваши любимые обои в избранное, чтобы вы могли ознакомиться с ними позже в разделе избранного.
* Несколько тем: у нас есть три темы на ваш выбор, чтобы вы могли изучить наше приложение с темой на ваш выбор.
* Разнообразие разделов:
У нас есть множество разделов, таких как «Коллекции», «Исследовать», «Популярные» и «Избранное» для сбора изображений по времени, популярности и т. Д.
Поддерживается Android
Поддерживаемая версия Android:-
Леденец на палочке (5.0–5.0.2) — Зефир (6.0–6.0.1) — Нуга (7.0–7.1.1) — Орео (8.0–8.1) — Пирог (9.0)
Скачать ProPix OnePlus 8 Обои для рабочего стола с дыроколом Премиум 1.0.2 APK Для Android
Дополнительная информация
Разработчик: WallPix
Версия: 1.0.2
Гугл игры : PlayStore
Источник: apkhome.io
SysAdmin Anywhere: Используем UDP Hole Punching для реализации удаленного рабочего стола
Системные администраторы по своей природе — люди ленивые. Не любят они по сто раз одно и то же делать. Хотят все автоматизировать, чтобы работало с минимальным вмешательством. И я такой.
Дабы облегчить жизнь себе и мне подобным, была создана программа, которая объединила разрозненные средства администрирования в один продукт с простым названием SysAdmin. Он включает поддержку мультидоменной сети, отчеты, инвентаризацию и много других полезных вещей, которые разбросаны по разным MMC или входят в сторонние продукты. Работать стало значительно удобней. Данная программа уже доросла до версии 5.3, сменила интерфейс на Metro-style. Но, к сожалению, в ней нет возможности администрировать компьютеры, не включенные в домен.
- Полноценно администрировать удаленные компьютеры;
- Настроить доступ без личного присутствия на удаленной стороне и без наличия квалифицированного сотрудника с удаленной стороны;
- Не открывать порты на маршрутизаторе;
- При невозможности личного присутствия не открывать доступ к маршрутизатору из интернета;
- Не усложнять техническое решение, если необходимо иметь доступ не к одному компьютеру в удаленной сети:
- Не открывать порты на маршрутизаторе для каждого компьютера;
- Не открывать доступ на маршрутизаторе к серверу, а с него к компьютерам (Не всегда есть необходимость в сервере, а введение его в качестве средства для удаленного доступа – экономически нецелесообразно);
- Не открывать один порт и каждый раз не перенастраивать маршрутизатор для доступа к другому компьютеру;
- Не поднимать VPN.
Из опыта:
По работе надо было создать VPN-сеть с региональными отделениями, расположенными по всей стране. В центральном отделении было установлено мощное VPN-оборудование, а на местах планировалось оборудование той же компании, но проще. Необходимо было выяснить все про их интернет — соединение, локальную сеть, установленное оборудование и т.д.
Подготовить VPN-оборудование и отправить им, чтобы они его подключили и все заработало. Пикантность ситуации заключалась в том, что это предстояло сделать фактически мне одному, командировки не предусматривались и уровень пользователей на местах был очень разнообразен. Конечно, все было реализовано, но это отняло массу времени на переписку и телефонные разговоры.
Из-за перечисленных ранее ограничений для реализации был необходим посредник. На удаленный компьютер устанавливается клиентская часть, которая создает соединение с посредником, не блокируемое файерволами, т.к. оно инициировано самой удаленной машиной. Администратору достаточно знать только адрес посредника, чтобы, подключившись к нему, получить доступ к удаленным компьютерам. Благодаря такому посреднику, мы получаем ряд преимуществ:
- Нет необходимости открывать порты на маршрутизаторе. Повышается безопасность, снижается уровень необходимой квалификации пользователя;
- Администратор имеет доступ к панели управления, расположенной в облаке, через браузер, поддерживающий Microsoft Silverlight посредством защищенного соединения;
- Команды от администратора при помощи облачного сервиса отправляются на удаленный компьютер. Ответ передается администратору аналогичным образом;
- Удаленный компьютер находится в режиме онлайн, поэтому нет необходимости в присутствии пользователя;
- Дополнительные сервисы (инвентаризация, сервис-деск, отчеты, учет лицензий, архивация, мониторинг и т.д.) с хранением данных в облаке и доступа к ним, даже если удаленный компьютер не подключен к интернету;
- Удаленный рабочий стол (VNC);
- Доступ с мобильного телефона на Windows Phone.
Платформу для посредника долго искать не пришлось. Microsoft Azure, как нельзя кстати, подходила для этого. Тем более была возможность получить 30-ти дневный доступ для экспериментов.
Так сложилось, что к этому времени я сменил сферу деятельности с системного администрирования на программирование., поэтому решил создать сервис самостоятельно.
Ко мне присоединился мой коллега, и мы вместе приступили к разработке прототипа сервиса. Перед нами стояла задача за время тестового периода создать работоспособную модель взаимодействия удаленного клиента с облачным сервисом. Дальнейшие разработки можно было продолжить, используя Azure SDK.
Сложнее всего было организовать постоянное соединение удаленного компьютера с облачным сервисом. В результате долгих и нудных экспериментов (деплой в облако занимает ощутимое время) появилось рабочее решение, которое дало уверенность в достижении поставленной цели.
Мы смогли соединить удаленный компьютер с облаком, при этом ничего не настраивая из сетевого оборудования. Для нас это стало прорывом.
Теперь стояла задача передать команду от администратора в облако, а далее на компьютер и получить от него ответ. Мы остановились на том, что универсальным решением было бы использовать WMI. Причем, облачный сервис не должен знать ничего про WMI. Его задача — пересылка. Это задумывалось для того, чтобы как можно реже приходилось обновлять сам облачный сервис и клиентское ПО на удаленных компьютерах (сейчас обновляется до последней версии нажатием кнопки в консоли).
Пример:
От администратора передается запрос на получение списка установленных служб (Select * From Win32_Service) плюс набор полей, значения которых нам нужны. Все это сериализуется JSON, пакуется, шифруется и передается в облако. В облаке данные записываются в очередь и затем забираются из нее экземпляром службы, к которому подключен удаленный компьютер.
Клиент, получив запрос, выполняет его. Полученный результат сериализуется JSON, пакуется, шифруется и передается в обратном порядке администратору.
Использование WMI не ограничивается только запросом, реализован вызов функций и процедур. Например, любую из служб можно остановить.
Казалось бы, все просто, но не стоит забывать, что если мы планируем сделать масштабируемое решение — без работы с несколькими экземплярами нашего сервиса в облаке не обойтись. Работа с ними требует некоторого пересмотра своего опыта в разработке. Всегда надо держать в голове, что существует не один экземпляр, а несколько, и работают они параллельно.
Желаете что-то сделать монопольно — не забывайте оповестить об этом остальные экземпляры. Например, биллинг. Будет крайне неприятно, когда каждый экземпляр пройдется по базе и пересчитает баланс клиента, каждый раз уменьшая его. Такой вариант показан в качестве примера того, что может произойти, хотя в настоящее время мы работаем над тем, чтобы исключить эту проблему в будущем.
Создавая сервис, мы исходили из того, что в большинстве случаев не обязательно иметь доступ к удаленному рабочему столу. Достаточно прямого управления процессами, службами и т.п. Это быстрее и проще сделать через веб-интерфейс.
Все же удаленный рабочий стол очень востребован и для его реализации требуется прямое соединение между компьютерами. Передавать такой объем информации через облако нерационально, так как задержка в обновлении экрана может достигать несколько секунд.
Реализация UDP Hole Punching
Наиболее интересной задачей оказалась реализация системы удаленного доступа к рабочему столу. Для экономии времени было решено взять уже готовую реализацию VNC что, однако, порождало свои проблемы: соединить напрямую клиент и сервер VNC невозможно. Единственным решением явилось создание посредников, задача которых — ретрансляция трафика. Таким образом, VNC клиент и сервер будут “думать”, что работают локально, когда на самом деле весь трафик между ними мы будем передавать через Интернет.
NAT Travesal
Остался открытым вопрос: каким образом передавать информацию между посредниками? Первый приходящий на ум вариант – гонять все через облако – является сколь дорогим столь и неэффективным способом. Гораздо лучше соединить все напрямую. Тут мы и наталкиваемся на стандартную проблему NAT Traversal.
Преобразование сетевых адресов (NAT) не дает возможности устанавливать прямое соединение между клиентами. NAT – это процесс трансляции локальных адресов, недоступных из Интернета, во внешние. Для обхода NAT существует несколько стандартных способов: открыть порт, поднять VPN.
К сожалению, ни один из них нам не подходит, т.к. сразу усложняет установку всех необходимых компонентов (а ведь мы хотим, чтобы установка клиента на рабочей машине была доступна наименее продвинутым пользователям без помощи админа). Поэтому воспользуемся механизмом UDP Hole Punching.
UDP Hole Punching
UDP hole punching — метод для прямого соединения двух компьютеров, которые находятся за NAT-ами. Для инициации соединения требуется третья сторона – сервер, который виден обоим компьютерам. Обычно используются публичные STUN-серверы.
Итак, наша задача состоит в том, чтобы напрямую связать клиента на удаленной машине и консоль. Для этого необходимо сделать несколько шагов:
- Узнать внешний IP и порт удаленной машины. Для этого воспользуемся STUN – сетевым протоколом, который позволяет определить внешний IP-адрес.
- Передать эту информацию нашему приложению
- Установить соединение и использовать его далее для обмена данными
Как это выглядит в коде?
В теории все просто. Как все это выглядит на практике?
Как видно из изображения выше, немногим сложнее. Сначала мы отправляем запрос на соединение от нашего приложения, который через облако передается приложению на клиентской машине (шаги 1 и 2). Клиентская машина запрашивает свой внешний адрес и порт у STUN-сервера (шаги 3 и 4). В сети можно найти множество реализаций STUN протокола.
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
Т.к. в нашем решении используется UDP, мы можем, используя тот же сокет, подключиться к клиенту (что выгодно отличает его от TCP).
После этих нехитрых манипуляций address будет содержать внешний адрес и порт клиентской машины (или сообщение об ошибке). Эта ценная информация передается консоли управления через облако (шаги 5 и 6). Создать соединение, зная порт и адрес – уже дело техники. Теперь мы можем передавать всю необходимую нам информацию.
Задача NAT Traversal решается просто и изящно при использовании UDP, но что если мы при этом хотим все преимущества TCP: гарантированную доставку пакетов, целостность данных, отсутствие дублирования и т.д.? Первая мысль, которая приходит в голову – написать свой протокол поверх UDP. Естественно, мы далеко не первые, кто столкнулся с этой проблемой. Поэтому после недолгого поиска можно найти такое решение, как Lindgren.Network, которое в итоге используется в нашем приложении.
Источник: habr.com