Знает ли кто-нибудь, как это решить, или, по крайней мере, дает мне представление, как это сделать. Поскольку я совершенно новичок в с.
Напишите приложение ANSI-C для анализа полученных пакетов данных из интерфейса командной строки (CLI).
Один пакет всегда строится следующим образом:
в <сентября>По ресивер на<сентября>У некоторых:сведения и л;Длина&ГТ;&ЛТ;сентября&ГТ;в <сентября&ГТ;ОК&ЛТ;сентября&ГТ;
тогда как <sep> В качестве разделителя ключевых слов будет \r\n.
Входная строка может содержать несколько пакетов, но максимально допустимый входной сигнал составляет 1024 байта (весь вход CLI, ВКЛ. ключевые).
Сначала приложение считывает входную длину, например 197, из CLI, а затем считывает 197 байт из CLI. Эти 197 байт могут содержать несколько закодированных пакетов, ни одного или даже неполных.Ввод
197 \r\nRCV\r\nSOME:DATA40\r\n24Ab2bfsdfa46jKjj936100dsasgdfsdf1240s0x\r\nOK\r\n\r\nRCV\r\nSOME:DATA50\r\n24Ab246324400123543gfdsas4sdaasd22231fn67sdff46ngk\r\nOK\r\n\r\nRCV\r\nSOME:DATA0\r\n\r\nOK\r\n
Ожидаемый результат: 3 полных пакета после синтаксического анализа
Пакет 1> размер: 40 данные: 24Ab2bfsdfa46jKjj936100dsasgdfsdf1240s0x Пакет 2> размер: 50 данные: 24Ab246324400123543gfdsas4sdaasd22231fn67sdff46ngk пакет 3> размер: 0 данные:
Что я уже пробовал:
Как я уже сказал, Я новичок в этом деле.поэтому я просто применил strtok но он просто разделил функцию но остальная логика мне все еще не ясна