异常如下

java.io.EOFException
    at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
    at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2836)
    at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2892)
    at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1075)

调用如下方法报的异常

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String version = ois.readUTF();//此句异常

分析问题

由于读取字符串读不完整,就会出现此问题,所以可以写服务端那边将ObjectOutputStream写后后调用如下语句即可

oos.writeUTF("version");
oos.flush();

即把字符串缓存完全刷过去。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐