我正在尝试使用 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)
谁能告诉我问题是什么以及如何解决?提前感谢
使用 DataInputStream 的 dis.read() 方法来不获取异常。
请从 DataInputStream 更改为 BufferedInputStream,因为当流到达末尾时,DataInputStream 会在读取所有字节之前抛出 EOFException