Zmodem получава файл с C/C++

Възложено ми е да напиша C++ програма на платформа Windows за извличане на текстов файл от отдалечен сървър с помощта на zmodem през сериен порт. Почти същото като този човек но на windows.

Ето къде съм заседнал: мога да говоря със сървъра чрез сериен кабел, но когато сървърът изпрати файла, той използва zmodem protcol, така че виждам, че сървърът ми изпраща rz\r**.B00000000\r

Затова прочетох спец. за протокола zmodem, но не разбирам как да започна получаване на файла. Изпращам ZRINIT според заглавния файл споменато в спецификацията. Но прехвърлянето на файлове не започва.

Моят въпрос е следният. Мога ли просто да изпратя байтове, когато ми бъде дадена заявка за изпращане на файл и да очаквам да започна да получавам пакети? Може би изпращам грешен код? в такъв случай има ли пример за това как да кодирам. Трябва ли да не си давам труда да се опитвам сам да напиша протокол и да намеря библиотека, която прави това за мен автоматично? Ако е така съществува ли за windows? Или трябва да търся програма за комуникация, която приема входове от командния ред?

Наистина просто имам нужда от съвет как да продължа.

Четох за 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