getInputStream()什么时候返回null?

时间:2011-03-02 08:08:41

标签: java sockets

当我们在创建客户端后第二次调用Socket.getInputStream()时,它返回null。我该怎么办?

2 个答案:

答案 0 :(得分:2)

如果你偶然使用了这种模式,感觉就像返回的空值一样:

InputStream is = null;
try {
   is = socket.getInputStream();
} catch (IOException e) {
  // TODO will be logged once logging is implemented...
  // e.printStackTrace();
}
is.read(); //  <-- NPE in case IOException...

仔细检查您的代码,这可能是您的NPE的原因。

答案 1 :(得分:1)

根据its documentation Socket.getInputStream(),永远不会返回null。它会返回InputStream ,会抛出IOException

如果它抛出一个IOException,那么你要么关闭套接字,另一边关闭套接字,要么在通信过程中出现其他问题。