Take the 2-minute tour ×  I have a program with a Mono-based C#
client and a Python server, which communicate over a TCP/IP
socket. The messages use a mostly binary format but the largest
part of each message is usually embedded UTF-8 strings (in
English). Each message is typically short (under 100 bytes) but
some can be longer (up to 64K). A lot of data is exchanged and
I'd like to reduce message sizes and bandwidth usage by
compressing the data when it's transmitted.  My initial research
hasn't turned up anything that is obviously compatible across
the 2 standard libraries. Python has a zlib library but I can't
use C#'s DeflateStream or GZipStream (as they require an
external DLL that I don't have available) and it doesn't seem to
work with SharpZipLib's ZipOutputStream (giving out "error -3 -
incorrect header" responses). (Those not using Mono might have
more luck - see Duncan's answer below.)  I would be interested
in hearing about easy ways to enable compression over this
communications link, bearing in