Linux / Server 端收到 SIGPIPE 信号的原因
生活随笔
收集整理的這篇文章主要介紹了
Linux / Server 端收到 SIGPIPE 信号的原因
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
server 端收到 SIGPIPE 信號的原因就是 Server 向已經(jīng)關(guān)閉的 client 繼續(xù)發(fā)送數(shù)據(jù)。?
上錯誤代碼:
int SendData(char *pbuf , const size_t &len) {size_t n = 0;while (true){n = send(fd, pbuf, len, 0);if (n < 0){int err = errno;if (err == EAGAIN){return -1;}else if (err == EINTR){continue;}else{return -2;}}//else//{// break;//}}return n; }由于自己的粗心,導(dǎo)致注釋部分沒有寫上,所以該代碼就進(jìn)入了無限發(fā)送數(shù)據(jù)的狀態(tài),當(dāng)在這期間 client 關(guān)閉之后,server 端就收到了 SIGPIPE 信號。
?
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的Linux / Server 端收到 SIGPIPE 信号的原因的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux / TCPIP / 判断 c
- 下一篇: nginx / 安装、部署和启动