Android 问题...为什么没有套接字异常?解决办法吗?
我有一个套接字连接线程,使用对象输入和输出流来跨套接字读取和写入对象。
在 Android 2.1 更新和 2.2.1 中,每当您调用 socket.shutdownOutput()
时,它都会在连接线程中引发异常,我会捕获它并执行finally 进行清理。由于一些有趣的原因,socket.close()
在提到的版本中也不会抛出异常。
在 2.2.2 中,情况并非如此。调用 shutdownOutput()
、shutdownInput()
、close()
都不会抛出任何异常,我必须等到套接字在我可以进行任何清理之前调用超时。
谁能解释一下正在发生的事情吗?一个解决方案也很好。
谢谢!
I have a socket connection thread using objectinput and output stream to read and write objects across the socket.
In Android 2.1 update and 2.2.1, whenever you call a socket.shutdownOutput()
, it throws an exception in the connection thread, I catch it and do a finally for a a cleanup. For some funny reason socket.close()
does not throw an exception in the versions mentioned either.
In 2.2.2, this is not the case. Calling shutdownOutput()
, shutdownInput()
, close()
all do not throw any exceptions at all, and I have to wait until the socket timeout is called before I can do any cleanups.
Can anyone shed some light on what is happening? A workaround solution would be nice too.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我从上次关于这个问题的文章中找到了一些,但解决方法不适用于 2.2.2。 code.google.com/p/android/issues/detail?id=6144 和 code.google.com/p/android/issues/detail?id=7933
Ok I dug up some posts from last time regarding the issue, but the workaround does not work for 2.2.2. code.google.com/p/android/issues/detail?id=6144 and code.google.com/p/android/issues/detail?id=7933