Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть небольшая программка, мониторит сетевую активность пользователя. Собственно DLL, находящаяся в сетевом стеке, которая по IPC гонит информацию о том где был юзер. Надо написать сервис, принимающий эту инфу и пишущий ее в файл. Для облегчения задачи могу предоставить код сервиса (в принципе подобные вещи находятся в инете). Проблемы, которые надо решить:

1. Стабильная работа.

2. Запись в файл без всяких дедлоков и прочих проблем. Чтобы данные писались в файл, не блокируя друг друга. Порядок записи не так важен, достаточно время и адрес записать. То есть, если сервису одновременно сваливается 50 запросов, он должен их нормально записать.

3. Размер файла - через день работы файл может вырасти до десятков мегабайт. Тут приветствуются самостоятельные идеи - разбить на части или еще как-нибудь. Возможно дописывание в конец большого файла происходит так же быстро, как и у маленького. Не знаю.

4. Файл надо блокировать от просмотра пользователем, искажения.

Файловая система НТФС, права на файл можно выставить, если надо.

Можете вообще предложить свое решение, главное - принять инфу и сохранить ее где-то. Хранить надо довольно долго, месяц-два.

Дополняю информацию, хотя не знаю чем это поможет. Отправка информации происходит так:

ДЛЛ в dllmain при DLL_PROCESS_ATTACH создает трубу

hPipe = CreateFile(

lpszPipename, // pipe name

GENERIC_READ | // read and write access

GENERIC_WRITE,

0, // no sharing

NULL, // default security attributes

OPEN_EXISTING, // opens existing pipe

0, // default attributes

NULL); // no template file

Далее в нее пишутся данные

fSuccess = WriteFile(

hPipe, // pipe handle

strURL.c_str(), // message

cbToWrite, // message length

&cbWritten, // bytes written

NULL); // not overlapped

Задача сервиса поймать эти данные и записать на диск. Все в рамках одной машины.

12 лет назад
serg73
Сергей 
51 годРоссия
17 лет в сервисе
Была
8 лет назад