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. Если вам нужно, вы также можете загрузить исходный код.

Надеюсь, это поможет.

Другие вопросы по тегам