用BufferedInputStream 的 read()函数,当拔掉网线时,返回值不为-1,且正常,而且没有任何异常抛出,何故?该怎么用才能得到异常?

解决方案 »

  1.   

    我做过拔掉网线的实验,会一直阻塞在那里,一直是established的状态。
    在应用层面,写个超时机制读处理。
      

  2.   

    你是在模拟器里面这样做的吧?我原来也想这么检测的,但是始终没有成功。
    这样是没有效果的。android只能检测你调成了飞行模式或手动将wifi和移动网络主动关闭的情况下才会告诉你网络异常,像如果因为你信号不好而导致的连接不上网络,只有在超时以后去处理。
      

  3.   


    说的好。要调用setReadTimeout()函数,设定读超时时间,否则会阻塞在那里