当我们在创建客户端后第二次调用Socket.getInputStream()
时,它返回null。我该怎么办?
答案 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
,那么你要么关闭套接字,另一边关闭套接字,要么在通信过程中出现其他问题。