码迷,mamicode.com
首页 > 系统相关 > 详细

linux socket编程client关闭时server崩溃问题

时间:2015-03-20 16:29:43      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:linux socket   client关闭时server崩溃   

1、该问题主要是由于向关闭的socket发送数据产生,即调用send函数发送数据

2、向关闭的socket发送数据时,当发送缓冲区未满时,send函数返回的值仍然大于0,当发送缓冲区已满时,返回-1

3、向关闭的socket两次调用send函数时,会产生SIGPIPE信号,该信号的默认处理方式是结束socket所在线程

4、解决方案

(1)调用signal(SIGPIPE,SIG_IGN);函数忽略SIGPIPE信号

(2)调用send函数时,指定flag=MSG_NOSIGNAL,即send(clientSocket,buf,len,MSG_NOSIGNAL);


参考文献

linux socket编程client关闭时server崩溃问题

标签:linux socket   client关闭时server崩溃   

原文地址:http://blog.csdn.net/cjc211322/article/details/44491795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!