leancloud / ChatKit-OC

此项目已经废弃,以后不再维护。我们推出了基于 Swift SDK 的 Chat Demo。
https://github.com/leancloud/swift-sdk-demo
MIT License
2.12k stars 461 forks source link

当使用 socket 进行网络连接时,如果连接中断,在默认情况下,你的 process 会收到一个 SIGPIPE 信号。如果你没有处理这个信号,app 会直接 crash #346

Open ConnyYue opened 7 years ago

ConnyYue commented 7 years ago

在全局范围内忽略这个信号 signal(SIGPIPE, SIG_IGN); 需要注意的是,这个方法是全局通用的,所有的 SIGPIPE 信号都将被忽略

在一开始的时候设置 socket 不要发送 SIGPIPE 信号 /// sock 就是设置不发送 SIGPIPE 信号的 socket 变量 int value = 1; setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, &value, sizeof(value));

ChenYilong commented 7 years ago

建议提pr