我和一群朋友正在用Java开发项目,我们需要一些有关通过套接字发送对象的帮助。
到目前为止,我们已经实现了使用ObjectOutputStream
和通过套接字发送简单的对象(int,字符串和诸如此类)ObjectInputStream
。但是,我们今天遇到了一个大问题(无论如何对我们来说都是巨大的^^)
我们有一个树状结构,需要从一台PC发送到另一台PC。问题在于,在该树的每个节点中,我们都有对BufferedImage的引用,并且该引用不可序列化。
今天我们进行了大量研究,发现可以用来通过套接字的OutputStream ImageIO.write()
发送 一个
BufferedImage,但这对我们没有好处,因为我们不需要自己发送BufferedImage,而是整个树都是它位于。
我们需要的是一种方法(如果存在的话)来序列化每个BufferedImage,并在必要时将其转换为另一个类,同时制作树,并让树的每个节点都引用该新的可序列化类,以便可以将树发送为整个对象…
我们真的不在乎性能,因为我们要发送的树不是那么大(顶部10-15个节点)。在此先感谢您的帮助,对不起的英语抱歉。哦,这是用于…好吧,是一种家庭作业,以防万一,请记住:-)
谢谢!!
在每个节点上,您可以使用writeObject()和readObject()查看http://java.sun.com/developer/technicalArticles/Programming/serialization/以获取更多信息
本质上它将成为
public Node implements Serializable{
transient BufferedImage buff;//transient make it so it won't be written with defaultWriteObject (which would error)
private void writeObject(ObjectOutputStream out)throws IOException{
out.defaultWriteObject();
//write buff with imageIO to out
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException{
in.defaultReadObject();
//read buff with imageIO from in
}
}
问题内容: 我有2个java netbeans项目,一个是Server,另一个是Client。我已经创建了一个Message类,该类要传递给服务器,并在服务器上进行修改后以另一种方式返回给客户端。我在两个项目中都包含了Message类。我使用和传递对象。服务器和客户端之间的连接正常,并且对象通过,但在服务器上,当我从using 方法读取对象时,将其类型转换为类。但是在服务器上抛出 ClassNot
我正试图通过Java的socket发送一个custome对象。我知道我需要将具有我需要发送的对象的类放在相同的包中,具有相同的serialVersionUID并实现Serializable。我已经这样做了,但我仍然不能通过套接字发送对象。我错在哪里了? 以下是客户端代码: 客户端中的类用户 发送user类对象的代码: 这里是服务器的代码: user类的代码:与客户端的user完全相同(我从客户端复
我有一个问题,然后通过套接字发送列表,它必须是字节样的对象,好吧,我可以转换它字符串,然后做,但问题是字符串,这是很难重建它 列表从字符串,和从库 没有工作,然后我有这样的东西: 这就是问题所在,我必须拥有这些对象,我的问题是如何发送python对象而不需要将其转换为字符串,或者类似于JSON之类的对象符号? 这可以通过Python套接字文档在基本套接字服务器上进行测试。 失败的文本评估: 错误:
我在网上搜索了很多,但是没有找到通过套接字发送对象并按原样接收的解决方案。我知道它需要酸洗,我已经做过了。将其转换为字节,然后从另一方面接收。但如何将这些字节转换为该类型的对象。 这是在客户端将对象转换为StringIO并发送到服务器的代码。在服务器端,我得到字节。现在我正在搜索要再次转换为StringIO的字节,以便获得对象值。 在代码中,对象被包装在StringIO中,并通过套接字发送。任何更
问题内容: 您好,我尝试使用Java中的客户端-服务器类发送文件。由于某种原因,当调用发送文件的方法时,套接字关闭。这是代码: 和来自客户端的代码: 和我得到的错误消息:严重:null java.net.SocketException:套接字已关闭 我对此并没有真正的经验,所以如果有帮助的话会很棒。 问题答案: 该方法返回一个,代表它实际读取的字节数。不能保证从字节数组中读取所需的字节数。它通常会
问题内容: 我正在使用Java应用程序,需要通过套接字连接尽快将500,000个整数的数组从一台Android手机发送到另一台Android手机。无论是使用ObjectOutputStreams,ByteBuffers还是低级的掩码和移位转换,主要的瓶颈似乎都是在转换整数,以便套接字可以使用它们。通过套接字从一个Java应用程序向另一个Java应用程序发送int []的最快方法是什么? 这是到目前