taj*_*hal 7 java sockets android inputstream
我有一个线程,其中a的read()
方法InputStream
在循环中被调用.当没有更多字节要读取时,流将阻塞,直到新数据到达.
如果我呼吁close()
在InputStream
从不同的线程,流被关闭,但被阻止的read()
电话仍然受阻.我假设该read()
方法现在应返回一个值,-1
以指示流的结束,但它不会.相反,它会被阻塞几分钟,直到发生tcp超时.
如何取消阻止close()
通话?
编辑:
显然,SocketException
当阻塞read()
调用对应的流或套接字是close()
'd 时,常规JRE将立即抛出.但是,我使用的Android Java运行时不会.
任何有关Android环境解决方案的提示都将不胜感激.
仅read()
当有可用数据时才调用。
做这样的事情:
while( flagBlock )
{
if( stream.available() > 0 )
{
stream.read( byteArray );
}
}
Run Code Online (Sandbox Code Playgroud)
设置flagBlock
停止读取。
归档时间: |
|
查看次数: |
16860 次 |
最近记录: |