您的位置:首页 > 理论基础 > 计算机网络

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

2016-06-30 21:14 627 查看
原因: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 ,重新创建。

暂时只有这个方法了。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: