Zmodem получает файл с C/C++
Мне поручено написать программу на С ++ на платформе 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. Если кто-то найдет ссылку на эти строки, это очень мне поможет.
1 ответ
С http://www.synchro.net/docs/sexyz.txt здесь есть ссылка на код http://www.synchro.net/.
Кажется, теперь это называется синхронет.
Вы также можете найти страницу загрузки и версию для Windows. Если вам нужно, вы также можете загрузить исходный код.
Надеюсь, это поможет.