Простой UDP-мост OSC<->немного другой формат
Есть программа (без исходника), умеющая по UDP устанавливать некие параметры и отдавать впоследствии их значения (сервер).
Протокол простой, как пробка:
есть два типа ключей, для установки параметров и для их чтения, сервер "знает" какие для чего нужны
key 40 - **** (параметр1 //GET)
key 41 - **** (параметр1 //SET)
key 81 - **** (параметр 2//SET)
R в начале строки - запрос, A-ответ
Наример - R/40\81\1.6e-1
Это запрос вернуть значение пераметра1 и установить значение параметра2=0,16.
Ответ сервера будет - A/40\534.3
Т.е. значение параметр1= 534.3
Число параметров - пусть будет 5, некоторые могут иметь два значения.
Можно будет посмотреть исходник, который умеет работать с этим сервером.
Еще есть клиент (без исходника), умеющий посылать и принимать пакеты формата OSC (отличный от сервера формат)
/*
OSC - Open Sound Control, имеющий мало общего со звуком, это простой UDP-транспорт http://opensoundcontrol.org
К нему имеются фришные библиотеки, которые умеют собирать/парсить пакеты OSC
*/
Задача - научить клиент и сервер общаться друг с другом.
Для чего взять типовое клиент-серверное UDP приложение (хорошо, если оно будет работать как сервис) и немного его переделать. Алгоритм его работы такой:
1. Слушать нужный порт на нужном интерфейся (конфигурабельно через .ini)
2. При получении пакета с неизвестного адреса - дропнуть
3. При получении пакета с разрешенного адреса (конфигурабельно через .ini)- пропарсить его (OSC), понять что хочет клиент, собрать понятный серверу запрос, отослать на сервер (конфигурабельные через .ini IP:port)
4. Если отослан GET-запрос - дождаться ответа сервера, пропарсить, перевести в OSC и отослать клиенту
На входе:
описание протокола, который поддерживает сервер
исходник, умеющий работать с сервером
линк http://opensoundcontrol.org - там надо будет подобрать библиотеку под OSC
клиент и документация к нему, проверочный пример
Т.к. у Вас не будет сервера (больно здоров) - дам фрагменты типового обмена (по ним в процессе отладки будет работать используемый Вами сервер-заглушка)
Нужно на выходе:
C++ проект на 2005 студии с необходимыми библиотеками, который будет у меня без ошибок компилиться, запускаться и обеспечивать указанный выше функционал. Работать должно ОЧЕНЬ быстро.
Всех делов знающему человеку - взять свой сэмпл UDP-шного клиент-сервера, вставить фрагменты чужого кода (совсем немного), прикрутить OSC-библиотеку. Imho на полдня, но назначать цену Вам.
Оплата сразу после исполнения, лучше по PayPal, впрочем могу сделать перевод или купить карточку WM и прислать PIN.
Не хотите рисковать своим временем - могу внести денег на СБП, только пока не знаю, как это сделать через PayPal