Я создаю сетевое приложение, которое должно иметь возможность переключаться с обычного сетевого трафика на сжатый поток zlib , средний поток. Мои мысли по этому вопросу связаны с логическим переключателем, который при включении заставит сетевой код передать все данные через класс, в который я могу передать IEnumerable<byte>
, а затем извлечь распакованный поток, передав его в уже существующий анализ протокола. код.
Вещи, на которые я смотрел:
- ZLib.NET - Кажется, немного ... Эклектично, и не совсем то, что я хочу. Тем не менее, все равно неплохо бы начать строить. ( комментарии Джона Скита здесь вряд ли меня тоже вдохновят.)
- SharpZipLib - Кажется, это вообще не поддерживает zlib? Кто-нибудь может подтвердить или опровергнуть это?
Я бы очень предпочел и все управляемые решения, но давайте посмотрим ... есть ли другие реализации этой библиотеки в .NET, которые могли бы лучше подходить для того, что я хочу сделать, или я должен взять ZLib.NET и собрать его как начало?
PS:
Джона попросили более подробно, так что вот оно.
Я пытаюсь реализовать MCCP 2 . Это включает в себя отправку сигнала в сетевом потоке, и все, что следует за этим сигналом, является сжатым потоком данных zlib. В приведенной выше ссылке есть ссылки на то, что они имеют в виду. В любом случае, чтобы было ясно, я на этом получаю конец (клиент, а не сервер), и у меня уже есть куча данных, считанных из сетевого потока, и переключение будет в середине этого (во всех как минимум вероятность), поэтому любое решение должно иметь возможность вводить в него некоторые дополнительные данные, прежде чем оно захватит NetworkStream (или я вручную добавлю остальные данные).