-
Notifications
You must be signed in to change notification settings - Fork 0
maximwreznikov/CommandHandler
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
========================================================================
CommandHandler : test project
========================================================================
Реализовать прототип клиентского приложения, работающего по следующему
протоколу:
Каждая команда от сервера состоит из следующих полей:
4 байта: магическое число 0xDEADBEAF сигнализирующее о начале новой
команды
2 байта: идентификатор типа команды
2 байта: размер тела команды в байтах
n байт: тело команды, содержимое зависит от типа команды
4 байта: CRC предыдущих (n + 4) байт посчитанных с помощью
http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/libkern/crc32.c
К клиенту команды приходят в виде последовательности байт через RS-232 или
другой интерфейс(работу с ним реализовывать не надо - только заглушку, но
закладываясь на то, что физический тип интерфейса может поменяться).
Типы команд:
Идентификатор: 1
Тело: пустое
Функция: перезагрузить клиент
Идентификатор: 2
Тело:
1 байт: размер следующей за этим байтом строки
n байт: сама строка в UTF-8
Функция: задать имя клиента
Надо заложиться на то, что количество типов команд может значительно
увеличиться.
Ошибки обрабатывать надо.
Прием и обработка команд должны производиться в отдельном потоке(можно
использовать функции-заглушки для работы с потоками).
/////////////////////////////////////////////////////////////////////////////
About
Simple two thread command handler
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published