|
Когда я писал свой протокол, то его структуру вылизал так:
1) Маркер начала пакета команды или данных
2) Команда или данные
3) CRC16
Пакет данных всегда предваряет командный пакет, в котором указан размер последующего пакета данных либо их отсутствие.
Пакет данных никогда не посылается, пока на командный пакет на придет подтверждение от приемной стороны.
Контрольная сумма считается для ВСЕГО пакета.
Обмен с обязательным таймаутом.
У меня несколько серьезных проектов сделано по такой схеме.
Нареканий и сбоев не было.
E-mail: info@telesys.ru