直接socket.close不行吗?为何还要加socket.setSoTimeout(0);呢?如果要终止socket输入或者输出,可以加上:if(null != socket && socket.isConnected)
{
socket.shutdownInput();
socket.shutdownOutput();
}
{
socket.shutdownInput();
socket.shutdownOutput();
}
解决方案 »
- android中webview加载网页,为什么有的网站会被加载两次?
- 郁闷Notification中的build()怎么用
- 无焦点 popwindow中的EditText跳不出软键盘输入问题,高手速来
- ListView 中item背景问题
- 求一个播放GIF图片的源码包?
- GridView有没有类似桌面的可以拖动item变化位置在保存起来啊
- 关于android百度地图定位的问题
- [求助]关于共享数据设计上以及android机制上的问题
- genymotion 虚拟机怎么安装不了微信apk?
- Unity3D 接入高德地图Android SDK
- 请教:java语法
- 为什么android edittext只有一条蓝线啊,怎么解决?
是设置socket永不超时
原因是由于java 每次GC时,垃圾回收器会将session重用中的ParcelFileDescriptor 参数被回收,导致push连接的SSLsocket成为假连接,此时socket.isConnected()=true。但是实际上socket连接已经成为不可用的或者说是坏掉的,合理保存下次参数再在下次使用就可以了。