readFully(byte [] b,int off,int len)和EOFException

时间:2013-04-06 14:22:55

标签: java tcp io

我在一段代码中经常遇到这个异常,当我调用readFully时就会发生这种情况。我不明白它是如何发生的,因为readFully应该阻塞直到len字节可用。如果它知道有多少字节可用,那么它后来如何满足EOF?

我该如何解决这个问题? (我正在读取前3个字节来获取长度(TLV的TL部分),然后在读取V时偶尔遇到问题。

由于

1 个答案:

答案 0 :(得分:1)

The documentation说:

  

throws:EOFException - 如果此输入流在读取所有字节之前到达结尾。

因此,如果您发送的长度不正确(即大于实际长度),或者发送方在写入所有字节之前关闭了流,则会出现此行为。