Java 通过套接字发送对象-对象包含BuffereImage-有什么想法吗?
Im通过套接字发送对象,该对象属于以下类别:Java 通过套接字发送对象-对象包含BuffereImage-有什么想法吗?,java,sockets,bufferedimage,Java,Sockets,Bufferedimage,Im通过套接字发送对象,该对象属于以下类别: public class ClientDetail implements Serializable{ public String username; public String [] capturedText; public String site; public BufferedImage screenShot; } 我正在尝试使用以下方式发送它: ClientDetail cD = new ClientDetail();
public class ClientDetail implements Serializable{
public String username;
public String [] capturedText;
public String site;
public BufferedImage screenShot;
}
我正在尝试使用以下方式发送它:
ClientDetail cD = new ClientDetail();
cD.capturedText = mon.getCapturedText();
cD.username = username;
cD.site = mon.getWebsite();
ScreenShot ss = new ScreenShot();
cD.screenShot = ss.getScreenShot();
if(mon.isCaptured)
{
try{
output.writeObject(cD);
output.flush();
}catch(IOException ex){
System.out.println("\nSomething messed up sending the message!");
}
}
这是无法发送的。能否通过套接字发送包含图像的对象?发送内容:
ImageIO.write((渲染图像)图像,“png”,输出)代码>
你知道的一件事:
ImageIO.read(输入)代码>您收到了什么错误消息?/例外情况是什么?如果你只是吞咽ex
,那么难怪你不知道出了什么问题。ava.io.NotSerializableException:java.awt.image.buffereImage位于java.io.ObjectOutputStream.writeObject0(未知源)位于java.io.ObjectOutputStream.defaultWriteFields(未知源)位于java.io.ObjectOutputStream.writeSerialData(未知源)在java.io.ObjectOutputStream.writeOrdinaryObject(未知源)在java.io.ObjectOutputStream.writeObject0(未知源)在java.io.ObjectOutputStream.writeObject(未知源)在client.client.whileConnected(client.java:76)在client.client.startRunning(client.java:31)在client.ClientMain.main(ClientMain.java:8)上我知道这和BuffereImage有关,因为您使用不同的方法在套接字上写入图像。(我是一个新手,顺便说一句。放松点lol)因为BuffereImage不可序列化,我可能只需要单独发送它。。或者你知道如何使其可序列化吗?使用中所示的方法将BuffereImage写入ByteArrayOutputStream,从ClientDetail中删除BuffereImage并添加字节数组。字节数组是可序列化的。请详细解释这是如何实现OP的要求的,以便OP理解为什么这会有帮助