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


person Shabbir Hussain    schedule 09.05.2012    source источник
comment
вам нужно будет реализовать гораздо больше — см. подробности в спецификации ZMODEM, особенно раздел о передаче файлов...   -  person Yahia    schedule 09.05.2012


Ответы (1)


С http://www.synchro.net/docs/sexyz.txt находится ссылка на код http://www.synchro.net/.

Кажется, сейчас это называется синхронет.

Вы также можете найти страницу загрузки там, и она также имеет версию для Windows. Если вам нужно, вы также можете загрузить исходный код.

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

person ervinbosenbacher    schedule 09.05.2012
comment
С сожалением должен сказать, что sexyz - это не то, что я ищу, поскольку он не получает файл через последовательный порт, а только через tcp. - person Shabbir Hussain; 09.05.2012
comment
Ок вечером посмотрю. Несколько лет назад у меня были похожие проблемы. Нужно немного покопаться. - person ervinbosenbacher; 09.05.2012
comment
Я не возражаю платить за стороннюю библиотеку или приложение, но я хотел бы свести затраты к минимуму, поскольку мне нужен только поиск файлов и ничего больше. - person Shabbir Hussain; 09.05.2012