ios调用unix 网络编程的socket 接口实行UDP通信, 锁屏后解屏会闪退的解决方法

原因:IOS 锁屏,然后解屏后,会发出一个SIGPIPE 信号,大家都知道,系统默认收到该信号,进程退出的。


解决:

方法1:signal( SIGPIPE, SIG_IGN ); 该方法不知道为什么,在IOS 真机下跑,无法捕捉SIGPIPE;

方法2:setsockopt( nSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int) ); 该方法可以彻底解决

所以只能使用方法2;


引出的其他问题:

锁屏,解屏后,对锁屏前的socket 进行recv 会返回-1, 这时候需要关闭socket ,重新创建。


暂时只有这个方法了。。

发布了120 篇原创文章 · 获赞 44 · 访问量 71万+

猜你喜欢

转载自blog.csdn.net/qiaoliang328/article/details/51793456