kmiya-culti / RLogin

RLoginは、Windows上で動作するターミナルソフトです
http://nanno.bf1.jp/softlib/man/rlogin/
MIT License
464 stars 16 forks source link

シリアル接続時のZMODEM転送に失敗する #57

Open yuki1318 opened 3 years ago

yuki1318 commented 3 years ago

シリアル接続でZMODEM転送を実施すると、 送信・受信共にCRC異常で転送に失敗してしまいます。

接続先のZMODEMプロトコルの仕組みは自作のものですが、 (申し訳有りませんが、開示することはできません。) TeraTermからZMODEM転送を実施した場合は送信・受信共に正常に転送できています。 Teraternの設定は特にカスタマイズせずに使用しています。

TeraTermから受信した時のZDATAのパケットと RLoginから受信した時のZDATAのパケットを比較してみたところ、 RLoginのパケットには先頭に "x11" が入っていたりと差分がありましたが、 詳細は不明です。

解決策があれば教えて下さい。

kmiya-culti commented 3 years ago

"x11"とは、XON(x11)/XOFF(x13)のフロー制御が動いているようですね・・・

ZModemでは、XON/XOFFフロー制御を無効化しないのでその辺を調べてみてください。

yuki1318 commented 3 years ago

ご回答ありがとうございます。

RloginからのZMODEMのパケットの先頭に XON がついていました。 XONを含めてCRCを計算していたので、CRCが異常になっているようです。 (試しにCRCの計算から先頭のXONを除外したらうまく動作しました。)

TeraTermから実施したときは、XONがついていないのですが、 RloginとTeraTermの違いは何なのでしょう??

因みにですが、 XMODEMもTeraTermだと成功し、Rloginだと失敗している状況で、 半ばあきらめモードです。。。

個人的にはRloginのほうが使いやすいので、 うまく差分を吸収してもらえると助かるのですが。。。。