我制作了一个可以在系统之间安全传输文件的应用程序...... 一切正常......除了收到结束。它显示了一个
Exception in thread "New Connection" java.lang.ClassCastException: [B cannot be cast to java.io.ObjectStreamClass
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at network.FileDownload.secureFileReceive(FileDownload.java:341)
at network.FileDownload.run(FileDownload.java:240)
at java.lang.Thread.run(Unknown Source)
发生异常的客户端程序(FileDownload)行是
String bb = security.decrypt((int[][]) input1.readObject());
byte[] buf = bb.getBytes("ISO-8859-1");
行的服务器端是
output1.writeObject( security.encrypt(new String(buf,"ISO-8859-1")));
这里,安全类具有加密和解密的方法,其中security.encrypt()
接受String并返回int [] []。 security.decrypt
反之亦然。
请帮帮我。
答案 0 :(得分:2)
接触我,在服务器端writeObject
,将你的int[][]
演员阵容转换为某种object
以便它可以发送,当然你不能投客户端的对象(int[][]
)系统不知道如何做到这一点......
我希望很清楚,你需要的是双方的对象序列化器。
祝你好运......答案 1 :(得分:0)
检查您通过正文从服务器发送的内容。该正文包含无效字符。这就是你得到表演的原因。我在白天遇到了同样的问题然后我解决了它改变了消息体。