gpt4 book ai didi

java - 如何验证对象传输是否完成

转载 作者:行者123 更新时间:2023-12-02 00:46:56 24 4
gpt4 key购买 nike

我想通过网络从一个 java 实例向另一个实例发送消息(可序列化对象)。我想验证整个对象是否已正确发送。

我想我的第一步是计算对象的校验和。然后我将该校验和包含在对象中,或者为消息及其校验和构建一个容器对象。

那么我的第二步应该是根据另一侧的对象验证校验和。

我的第三步是接收者发送一条确认消息,表示已收到相关对象并且校验和已通过(或未通过)。如果我收到校验和失败警告,我会尝试重新发送几次。

过了一会儿,如果我没有收到确认,我也会尝试重新发送几次。

问题:

我的协议(protocol)听起来是否正确,可以验证对象是否已正确传输?

我还想知道我应该如何在java中实现这个?我是否使用 CRC32 类来生成校验和?

额外问题:如果我要压缩每条消息,我是否在压缩之前或之后生成校验和,以及如何在 java 中压缩对象?

最佳答案

如果您的网络相当可靠且错误率较低,则不需要添加额外的校验和。我会首先在没有校验和的情况下实现您的协议(protocol),如果您确定需要它,我会添加它。

您可以使用 DeflatorOutputStream、InflatorInputStream 来压缩数据。如果压缩数据被损坏,对象在解压时很可能会抛出异常。即不太可能出现细微的错误。

但是,除非您的对象很大,否则它们可能无法很好地压缩,并且最终可能会因压缩而变得更大。

关于java - 如何验证对象传输是否完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726763/

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