gpt4 book ai didi

java - .Net 客户端与使用原始数据的 Java 服务器

转载 作者:行者123 更新时间:2023-12-02 08:38:01 26 4
gpt4 key购买 nike

我正在 Solaris 上的 Java 服务器上编写 .Net/C# 客户端。

Java 服务器正在以 Gziped 格式写入原始字节数据,我需要提取该数据,但我无法以正确的缓冲区大小读取数据。我读到的消息不确定是不完整还是完整,并且在任何情况下都无法读取第二条消息。我正在使用带有 DataAvailable 属性的 NetworkStream 类读取字节。

我的猜测是,这可能与小/大端问题有关。我是否需要使用特殊转换将数据从大端更改为小端?我需要使用 gzip header 读取必要的字节吗?

我之前曾经使用具有未压缩协议(protocol)的同一服务器,并且之前使用具有 ReadLine 功能的 StreamReader 没有问题,但该协议(protocol)是纯粹基于文本的。

编辑:不幸的是,由于给出了远程服务器和协议(protocol),我别无选择。 endiness 是 GZip 格式的一部分还是我只需要相应地转换 header ?未压缩的数据是纯UTF8编码的字符串,以换行符作为分隔符。

最佳答案

GZIP 格式并不复杂。它的所有荣耀都可以在 a simple, accessible specification document, IETF RFC 1952 中找到。 。

GZIP 格式指定字节的位顺序。它不能通过字节顺序标志进行调整。 GZIP 流的生产者负责遵守这方面的规范,GZIP 流的消费者也同样如此。

如果我正在调试它,我会查看线路两端的字节并验证输入的字节与输出的字节相同。这足以抛开字节序问题。

如果您没有成功传输 GZIP 字节流,请尝试传输测试数据 - 16 字节的 0xFF,然后是 16 字节的 0xAA,等等。然后,验证这是来自另一端的数据。

抱歉,我不知道您所说的意思我阅读的消息不确定不完整或完整,并且在任何情况下都无法阅读第二条消息。第二条消息?第二条消息是什么?字节序不应影响您接收的数据量。

我觉得您对成功传输数据没有信心。我建议您在解决字节序问题和 GZIP 格式问题之前验证这一点。

关于java - .Net 客户端与使用原始数据的 Java 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com