Skip to content

maximwreznikov/CommandHandler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published