ios 锁屏 lock 再切到前台后,以前listen的sock

2016-06-13  本文已影响913人  megar

问题现象:

      我们有一个服务使用了listen端口,等到锁屏后一段时间,再切到前台后,虽然还在poll socket,但是一直

收不到事件。fd是有效的

1. 我用c代码写了一个绑定和监听的程序,当listen的fd无法接收数据时,用这个程序绑定 侦听都是成功的,并没有报端口已经被绑定的错误。

推测是侦听的socket被系统关闭了。

2. 买了一个能越狱的手机,用netstat一看,果然之前我们侦听的端口已经不存在了。

这个问题的原因就是因为ios的 “设置-- 通用 ---自动锁定时间”,当这个时间一到,侦听的端口就回被ios回收。系统服务

需要重新启动才能正常。

这种情况极其罕见,一般的应用并不需要做端口的侦听,爬了很多网页最后发现在github的 CocoaHTTPServer上也有人反馈

类似的问题。解决方法也是在切前后台的时候重启服务。

cocoaHTTPServer链接:

iOS server socket dies on screen lock · Issue #10 · robbiehanson/CocoaHTTPServer · GitHub

iOS server socket dies on screen lock · Issue #10 · robbiehanson/CocoaHTTPServer · GitHub

上一篇 下一篇

猜你喜欢

热点阅读