Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在没有类的情况下通过ObjectInputStream()接收_Java_Sockets_Deserialization_Objectinputstream_Objectoutputstream - Fatal编程技术网

Java 在没有类的情况下通过ObjectInputStream()接收

Java 在没有类的情况下通过ObjectInputStream()接收,java,sockets,deserialization,objectinputstream,objectoutputstream,Java,Sockets,Deserialization,Objectinputstream,Objectoutputstream,我试图创建一个服务器,该服务器接收一个对象,该对象实现了客户端通过ObjectInputStream()发送的接口X 更好地解释: 我想让服务器通过接口接收对象,而不需要在服务器端实际拥有类 由于ObjectInputStream()反序列化对象,因此该类必须存在于服务器端,如果不存在,则发生ClassNotFoundException() 有没有其他方法可以让对象通过套接字,而不必让对象的类位于另一侧?我正在搜索执行同一ObjectInputStream的不同方法,但服务器端没有该类。如果没有

我试图创建一个服务器,该服务器接收一个对象,该对象实现了客户端通过ObjectInputStream()发送的接口X

更好地解释: 我想让服务器通过接口接收对象,而不需要在服务器端实际拥有类

由于ObjectInputStream()反序列化对象,因此该类必须存在于服务器端,如果不存在,则发生ClassNotFoundException()

有没有其他方法可以让对象通过套接字,而不必让对象的类位于另一侧?我正在搜索执行同一ObjectInputStream的不同方法,但服务器端没有该类。如果没有办法,我必须一直在服务器上上传这个类,这样ObjectInputStream就可以反序列化并且不会抛出ClassNotFoundException


谢谢。

如果不想实例化该对象,可以将其保存在byte[]缓冲区中。要实例化它,您需要像RMI一样:由发送方提供一个远程类加载器


但通常情况下,使用不同序列化机制的解决方案更适合这种情况。想想Protobuf、JSON或类似的东西

作为此反序列化的结果,您希望获得哪个类的实例?该类应位于服务器端。这是一个自定义类,我希望在服务器端进行反序列化。我知道我必须让这个类在服务器端。我正在寻找一种不用上课就能做到这一点的方法。与ObjectInputStream类似,但没有类。对不起,如果你问不清楚的话。我会编辑的。谢谢埃克斯,我会研究这个协议,看看它如何帮助我做到这一点。正如我所读到的,我认为这是我想做的更好的方法。