Tcp
文章平均质量分 87
罗鹏_0910
这个作者很懒,什么都没留下…
展开
-
Android 锁屏后Socket长连接踩坑总结
最近项目中遇到手机休眠后Socket心跳发不出去的问题,折腾许久终于解决,所以做个记录。每种手机都有自己的休眠策略,Android手机在长时间不操作时会自动让CPU进入睡眠状态,这就导致除AlarmManager外,Android Timer / Handler / Thread.sleep()这些方式实现的定时任务都无法正常运行。在安卓6.0之后,谷歌又加入了全新的Doze模式,就是说当屏幕关闭一段时间后,系统会对CPU,网络、Alarm等活动做出限制,从而延长电池寿命但是系统会间歇性退出Doz原创 2022-01-11 10:56:12 · 4773 阅读 · 0 评论 -
Socket.sendUrgentData()使用踩雷
Android使用tcp连接进行通信时,因为不能及时收到服务器socket断开状态,只能通过定时发送心跳方式维持socket稳定连接,但是考虑服务器性能问题,并发上去心跳包间隔又不能太长。所以笔者以前经常使用Socket.sendUrgentData()方法进行网络连接测试,socket.sendUrgentData(0xff)方法用于向服务端发送紧急数据包,如果服务端Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节,而SO_OOBINLINE属性默认情况下就是关闭的。Windo原创 2021-09-11 11:35:01 · 2216 阅读 · 1 评论