バイト化けか送信側の手順が悪いか…。GZIPInputStream/GZIPOutputStream 使ったらどうなる?
ところで 8192 バイトのバッファを用意しておきながら in.read() で 1 バイトづつしか
読み込んでないよ、それ。それにバッファはループの外で確保しなきゃ一回回るたびに
無駄なバッファが使い捨てられる。