Алгоритм IPC на основе Shared Memory между C++ и C# 1 000 р.
Алгоритм действия C++ сервера:
*Инициализация*
- Создаем список Shared Mem файлов в них храним Handles
*Работа*
Необходима возможность записи нескольких имен файлов, имя shared mem файла принимается как аргумент.
- Открыли Mutex ( имя Mutex - напр "mutex_"+SharedMemFileName)
- Создали новый файл shared mem (закрыв предыдущий HANDLE если есть)
- добавили Handle в список созданный при инициализации приложения
- Записали структуру-заголовок, записали 10 шт структур-данных
- Релизнули Mutex
*Завершение*
- Закрыли все HANDLE открытых shared mem файлов
-----------------
Алгоритм действия C# клиента:
*Работа*
Внимание! Нужен быстрый unsafe код!
Получили в качестве аргумента имя файла Shared Mem.
- Открыли Mutex ( имя Mutex - напр "mutex_"+SharedMemFileName)
- Прочитали структуру-заголовок (вычислили количество записей)
- Прочитали все записи в цикле for (вывели значения в console)
- Релизнули Mutex
----------------
Алгоритмы должны содержать коментарии, а также в каждом алгоритме должны быть проверки на ошибки try...catch и т.п.
Необходимые структуры для C++ и C# в аттаче, структуры 100% совместимы.
В итоге должно получиться 2 консольных приложения, одно из которых пишет 10 записей с рандомным содержанием в Shared Mem, другое их читает и воспроизводит. Поведение программ должно быть максимально подробно отлоггировано в консоли.

Добрый день! Предлагаю свои услуги.
Опытный программист-разработчик, 19 лет программлю.
С/С++, php, Perl, SQL и базы данных, сетевые технологии,
многопоточность и параллельные вычисления, hi-load,
системное программирование под Win и Unix/Linux/FreeBSD,
а так-же серверные (веб) скрипты.
- - - - - - - -
Уважаемый, начнем с того, что в WinAPI нет shmem. Есть Memory-Mapped IO, что совсем не одно и то-же.
Далее, подробное логирование в консоли - если делать это без особого асинхронного логера, - то прощай всякая производительность, а Вы указываете, что Вам нужен быстрый unsafe.
Итого - это работа не на 1000р, а как минимум на 4000р.
Пишите, обсудим, договоримся.
Буду рад с Вами сотрудничать.
skype: qulogic
ICQ:689686236
Зарегистрируйтесь или войдите на сайт под своим именем.