C# と C++ アプリケーションの間で圧縮されたデータを ZLIB 形式で送信したいと考えています。C++ では、boost::iostreams で利用可能な zlib_compressor/zlib_decompressor を使用します。C# では、現在 zlib.NET ライブラリで利用可能な ZOutputStream を使用しています。まず、両方のライブラリを使用して同じデータを圧縮すると、結果が異なって見えます。
- ブースト::iostreams::zlib_compressor:
63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00
- zlib.NET (zlib.ZOutputStream):
78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D
(zlib.NET には存在するが、boost には存在しない 78 9C パターンに注意してください)。
さらに、zlib.NET で圧縮したデータを boost で解凍すると、ストリームから読み取ることができず、何か問題があることが示唆されます。ブーストで圧縮されたデータを解凍しようとすると機能します。
誰が何がうまくいかないのか知っていますか?
ありがとうございました、
ヨハン