我正在尝试使用java中的套接字在服务器和客户端之间交换消息。 我正在为我的服务器使用以下代码
...
try{
if(acceptConnection){
s = serverSocket.accept();
System.out.println("connected");
acceptConnection = false;
dis = new DataInputStream(s.getInputStream());
}
System.out.println(dis.readUTF());
...
正确收到第一条消息,但是当我发送第二条消息时,我收到以下错误
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at java.io.DataInputStream.readUTF(DataInputStream.java:589)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at Server.run(Server.java:23)
谁能告诉我问题是什么以及如何解决? thnx提前
答案 0 :(得分:1)
使用DataInputStream的dis.read()方法来获取异常。
请从DataInputStream更改为 BufferedInputStream ,因为当数据流在读取所有字节之前到达结尾时,DataInputStream将抛出EOFException