Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179493
  • 博文数量: 28
  • 博客积分: 430
  • 博客等级: 下士
  • 技术积分: 257
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-30 09:53
文章分类

全部博文(28)

文章存档

2012年(27)

2011年(1)

分类: LINUX

2012-05-03 15:49:37

 当服务器close一个连接时,若客户端接着发数据,根据TCP协议的规定, 客户端会收到一个RST响应, 客户端再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。
根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以客户端会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN。 如:    signal(SIGPIPE,SIG_IGN); 这时,SIGPIPE交给了系统处理,而不是会导致客户端直接退出。
阅读(1277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~