2

我对网络编程很陌生。

我在一个线程中运行以下源代码。从我正在关闭的其他线程istream中,ostream并且socket,但仍然没有IOException从下面的代码中打印出来。我在 Android 手机上运行此代码。在某些 Android 手机上,该行为是正确的并且正在打印IOException,而在其他手机上则没有打印。

我真的很想知道readInt()真正的工作原理。某些手机​​不打印 IOException 可能有什么问题?

while(true){
try {
int readInt=istream.readInt();
}
catch(IOException e){
Log.i("Sample","IOException");
}
}
4

1 回答 1

1

您可以阅读 readInt() 的源代码以了解它的实际作用。如果您尝试读取流的末尾之外的内容,则应该始终收到 EOFException。

如果您要从另一个线程关闭线程。VM 应该触发 SocketClosedException,但某些 Android 手机可能不支持这种行为。

于 2012-10-29T13:52:02.957 回答