Сделал для себя программу и хочу ею поделится, может кому то еще пригодится. Главное ее назначение это передача 16 битного звука с высоким битрейтом, вплоть до частоты дискретизации 192000. Мне это нужно для экспериментов с SDR сигналами. Например взять поток с SDR приемника, передать его через интернет и вывести на программу HDSDR. Конечно для этого нужен хороший интернет, ведь такой сигнал с частотой дискретизации 192000 потянет примерно на 6 Мбит/секунду. Но многих сейчас безлимитным скоростным интернетом не удивишь. Программу можно использовать и для других целей, например для общения с конкретными корреспондентами. Кроме режимов 16 битного звука, стерео и моно, с частотами дискретизации 8000, 11025, 16000, 22050, 24000, 44100, 48000, 96000, 192000 есть также возможность передать этот звук с нелинейным квантованием с помощью кодека G711, что уменьшит битрейт в два раза, но качество при этом изменится незначительно. На худой конец есть еще кодек GSM который требует битрейта всего 16 Кбит/секунду, даже при слабом интернете есть возможность общаться. Можно программу заранее настроить, и отправить архив корреспонденту который не очень разбирается в компьютерах, но может архив распаковать и запустить из папки исполняемый файл. Планирую, если даст Бог, в будущем прикрутить к этой программе видео, передачу файлов и ссылок, обмен скриншотами и использовать для общения с друзьями, вместо SKYPE, который все более и более не вызывает у меня доверия, после того как он попал в крепкие руки Microsoft. Взаимодействие между программами происходит по направлению и непосредственно с одного IP на другой. Транспортный протокол используется UDP, что позволяет передавать сигнал с небольшими задержками. Для Соединения программ используется принцип STUN, но не конкретно сам протокол, а только принцип. Для поиска корреспондента нужен сервер, но после того как корреспондент найден и создан туннель с ним, через NAT, программы работают напрямую, что уменьшает задержку сигнала. Не все сервера NAT пропускают через себя такие туннели, но как показывает практика большинство роутеров, как домашние так и провайдеровские, это делают. Для многих будет невозможно создать такие соединения в пределах одной квартиры, в одной сети, поскольку программам будут известны их внешние белые IP адреса, и именно по ним будет происходить взаимодействие, но если ваш роутер не может транслировать изнутри сети внешние IP во внутренние, то связи не будет.
Саму программу можно скачать отсюда. В папке кроме исполняемого файла UB6LFT.EXE также находятся две DLL, key.dll нужна для Windows XP, что бы перехватывать нажатия клавиш, даже если окно программы не активно, а zlib1.dll применяется для сжатия сетевого трафика, когда это возможно, например для тихого звука или музыкальных пауз. Настройки программы будут сохранятся в файлах с расширением .$$$ Их может быть много в зависимости от направлений.
После первого запуска откроется окно
Название конфигурации нужно изменить на что то более удобное, произвольное по вашему выбору.
Очень важно правильно заполнить поля позывных, поскольку именно по сочетанию своего позывного и позывного корреспондента будет искаться в интернете его адрес. Для настроек на картинке выше должны быть такие настройки его корреспондента.
А вот пример настроек для различных корреспондентов на моем компьютере. Очень важно указать для них различные порты, иначе программы будут между собой конфликтовать. Ну и конечно названия конфигураций должны быть понятны.
После того как после первого запуска мы заполнили поля, нужно нажать кнопку Сохранить. Откроется вторая вкладка
Если мы планируем для первого раза просто поговорить с корреспондентом, то можно выставить следующие настройки
Здесь выбран битрейт побольше и добавлено усиление. Назначение окошек можно узнать подведя мышку к нужному окну и на время уставить курсом там, появится всплывающая подсказка. Задержку звука лучше оставить на минимуме, она добавляется только для трансляции музыки или когда корреспондент слышит вас с "подрывами". Для управления передачей выбрана левая клавиша Ctr.l
Нажимаем кнопку Сохранить.
Желтая полоса обозначает что в нашу сторону туннель создан и в окошке выше указан наш внешний IP и порт. Зеленая полоска ниже говорит о том, что мы находимся на приеме, а две полоски ниже информируют нас о том, что звуковое устройство по входу и выходу включились нормально. После очередного старта сразу будет высвечиваться именно это окно, в том случае если у вас одна конфигурация. Если конфигураций создано несколько, то при старте программы будет предложен выбор.
Итак пример взаимных настроек двух программ
А вот так они выглядят когда свяжутся и одна программа передает другой.
Если мы хотим создать группу, то надо для всех направлений указать одну и туже клавишу управлением передачей.
Тогда все три программы будут одновременно становится на передачу. В общем то управление программой довольно таки простое, но если будут вопросы, я отвечу.