我对网络编程很陌生。
我在一个线程中运行了波纹管源。我从其他帖子关闭istream
,ostream
和socket
,但仍然没有从下面的代码打印IOException
。我在Android手机上运行此代码。在某些Android手机上,行为是正确的并且打印IOException
,在其他未打印的手机上。
我真的想知道readInt()
是如何运作的。某些手机可能存在什么问题,而不是打印IOException?
while(true){
try {
int readInt=istream.readInt();
}
catch(IOException e){
Log.i("Sample","IOException");
}
}
答案 0 :(得分:1)
您可以阅读readInt()的来源,了解它的真正含义。如果您尝试阅读流的末尾,则应始终获得EOFException。
如果要从另一个线程关闭线程。 VM应该触发SocketClosedException,但有些品牌的Android手机可能不会遵循这种行为。