0

xmpp ライブラリを作成しており、zlib 圧縮データをサポートするストリームを作成しようとしています。私は2つの異なるバージョンを持っています.1つはzlib.netに基づいており、もう1つはSharpZipLibを使用しています. zlib.net バージョンは圧縮を認識せず、SharpZipLib バージョンは無限ループに入ります。適切なコードは、http ://github.com/coder2000/ubiety/tree/master/ の xmpp.compression.zlib および xmpp.compression.sharpziplib にあります。この問題を解決するための助けをいただければ幸いです。

4

3 に答える 3

1

いいえ。できる限りクロス プラットフォームになろうとしています。Mono がこれらのクラスを実装しているかどうかはわかりませんし、Microsoft が zlib 圧縮用のクラスを作成したことも知りませんでした。

于 2008-12-01T00:19:01.793 に答える
1

これは問題の直接的な解決策ではありませんが、System.IO.Compression.GZipStream または DeflateStream を試しましたか?

于 2008-12-01T00:07:13.423 に答える
0

詳しくは調べていませんが、SharpZipLib ラッパーが無視offsetcount、BeginRead で次のことを行うのは興味深いことです。

public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback cback, object state)
{
  _outBuff = buffer;
  if ( _in.IsNeedingInput )
    return _innerStream.BeginRead(_inBuff, 0, _inBuff.Length, cback, state);

  ZlibStreamAsyncResult ar = new ZlibStreamAsyncResult(state);
  cback(ar);
  return ar;
}

私をクレイジーと呼んでください、しかしおそらくGZipOutputStreametcを直接(またはSystem.Compressionの対応物)を使用してください...多くの実装の詳細を保存します...

于 2008-12-01T05:18:53.763 に答える