Мне поручили написать программу на С++ на платформе Windows для извлечения текстового файла с удаленного сервера с использованием zmodem через последовательный порт. Почти так же, как этот парень но на окнах.
Вот где я застрял: я могу общаться с сервером с помощью последовательного кабеля, но когда сервер отправляет файл, он использует протокол zmodem, поэтому я вижу, что сервер отправляет мне rz\r**.B00000000\r
Поэтому я прочитал спецификацию для протокола zmodem, но я не понимаю, как начать получение файла. Я отправляю ZRINIT в соответствии с заголовочным файлом упоминается в спецификации. Но передача файлов не начинается.
Мой вопрос заключается в следующем. Могу ли я просто отправлять байты, когда мне дается запрос на отправку файла, и ожидать начала приема пакетов? Возможно, я посылаю неправильный код? в таком случае есть ли пример того, как кодировать. Должен ли я не пытаться написать протокол самостоятельно и найти библиотеку, которая сделает это за меня автоматически? Если да, то существует ли он для окон? Или мне следует поискать коммуникационную программу, которая принимает данные из командной строки?
Мне действительно просто нужен совет, как действовать дальше.
Я читал о sexyz, но не могу найти страницу загрузки.
Любой вклад приветствуется.
ОБНОВИТЬ
я понял немного больше о протоколе. В разделах 8 и 12 спецификации упоминается, как работает транзакция между отправителем и получателем. Из этого я смог расшифровать код для некоторых заголовков, таких как ZRQINIT, ZRINIT, ZFILE... например
char ZRINIT[]={42, 42, 24, 66, 48, 49, 48, 48, 48, 48, 48, 48, 50, 51, 98, 101, 53, 48, 13, -118, 17,0}
Мне до сих пор не хватает многих, а именно ZRP0S, ZRFIN. Если кто-то может найти ссылку на определение этих строк, это очень поможет мне.