gpt4 book ai didi

java - 当接收者没有它的类时通过套接字发送对象

转载 作者:行者123 更新时间:2023-12-02 04:54:29 25 4
gpt4 key购买 nike

我有一个服务器,它从客户端接收一些对象,并稍后将该对象发送回客户端。
问题是服务器不一定具有该对象的类,因此在客户端序列化该对象并将其发送到服务器并使用 ObjectInputStream 读取它会抛出 ClassNotFoundException。

我考虑过使用 DataInputStream 将序列化对象作为字符串读取,并将结果字符串存储在服务器中,但这似乎不是正确的方法。

这是在客户端通过套接字序列化和发送对象的代码(session.dos 是套接字 DataOutputStream)

ObjectOutputStream oos = new ObjectOutputStream(Connector.session.dos);
oos.writeObject(Connector.session.game);

如何读取服务器中的未知对象?
或者序列化完全是错误的方法?那我该怎么办?

最佳答案

如果您想要一种不同的、令人兴奋的方法,那么您可能会比使用 Apache Avro 更糟糕(肯定有它的 Java 变体)。原因是 Avro 中的有线格式具有原始 IDL 模式(在 Avro 中实际上是 JSON)。这意味着接收者不一定需要查看架构来接收序列化数据并解释数据。因此,您可以接收 Avro 序列化类作为字节数组,存储它们并忽略内容,但以防万一您改变主意,可以解释数据。

如果您对此感兴趣,可以查看入门页面 here .

关于java - 当接收者没有它的类时通过套接字发送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56417472/

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