0

我制作了一个可以在系统之间安全传输文件的应用程序......一切正常......除了接收端。它显示了一个

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反之亦然。请帮我。

4

2 回答 2

2

对我来说接缝,在服务器端writeObject,将你的int[][]演员转换为某种形式object以便它可以发送,然后你当然不能在客户端投射一个对象(int[][])系统不知道如何做到这一点...

我希望这很清楚,您需要的是双方的对象序列化程序。

祝你好运 ...

于 2013-03-31T13:18:51.077 回答
0

检查您通过正文从服务器发送的内容。该正文包含无效字符。这就是你获得强制要求的原因。我在白天遇到了同样的问题,然后我解决了它,改变了消息正文。

于 2014-10-02T06:01:36.597 回答