我正在将 .Net/C# 客户端写入 Solaris 上的 Java 服务器。
Java 服务器正在以我需要提取的 Gziped 格式写入原始字节数据,但我无法以正确的缓冲区大小读取数据。我阅读的消息不是确定性的不完整或完整的,无论如何都无法阅读第二条消息。我正在使用具有 DataAvailable 属性的 NetworkStream 类读取字节。
我的猜测是它可能与一个小/大端问题有关。我是否需要使用特殊的转换将数据从大端转换为小端?我是否需要使用 gzip 标头读取必要的字节?
我以前使用带有未压缩协议的同一服务器,之前使用带有 ReadLine 函数的 StreamReader 没有问题,但该协议是纯文本的。
编辑:不幸的是,我别无选择,因为给出了远程服务器和协议。是 GZip 格式的结尾部分还是我只需要相应地转换标题?未压缩的数据是纯 UTF8 编码的字符串,以换行符作为分隔符。