免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3824 | 回复: 9
打印 上一主题 下一主题

如何获得套接字对的另一端已经关闭了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-27 17:30 |只看该作者 |倒序浏览
在往描述字里写数据的时候,对端已经关闭了,这样可能会有问题,我想在写数据前判断一下对端的状态,请问有什么方法吗。我用了getpeername不知道怎样。

论坛徽章:
0
2 [报告]
发表于 2008-12-27 17:41 |只看该作者
忽略SIGPIPE信号,write写出错,判断errno

论坛徽章:
0
3 [报告]
发表于 2008-12-27 17:47 |只看该作者
还有recv返回0,或者返回-1并且errno!=EINTR

论坛徽章:
0
4 [报告]
发表于 2008-12-27 17:53 |只看该作者
原帖由 cugb_cat 于 2008-12-27 17:41 发表
忽略SIGPIPE信号,write写出错,判断errno

拔网线的情况一般怎么判断?

论坛徽章:
0
5 [报告]
发表于 2008-12-27 17:58 |只看该作者
原帖由 gawk 于 2008-12-27 17:53 发表

拔网线的情况一般怎么判断?

EPIPE和EAGAIN的区别吧

论坛徽章:
0
6 [报告]
发表于 2008-12-27 18:10 |只看该作者
忽略SIGPIPE的方法是可以的。只是不知道getpeername;以及read这个描述符根据返回值及错误码来判断;还有使用select这3种方法可以解决吗。

论坛徽章:
0
7 [报告]
发表于 2009-01-01 14:49 |只看该作者
会产生信号,捕捉信号,注册信号处理函数

论坛徽章:
0
8 [报告]
发表于 2009-01-01 19:56 |只看该作者
原帖由 hostname 于 2008-12-27 18:10 发表
忽略SIGPIPE的方法是可以的。只是不知道getpeername;以及read这个描述符根据返回值及错误码来判断;还有使用select这3种方法可以解决吗。

对端关闭,read会返回0。

论坛徽章:
0
9 [报告]
发表于 2009-01-02 10:29 |只看该作者
原帖由 gawk 于 2008-12-27 17:53 发表

拔网线的情况一般怎么判断?



ioctl

论坛徽章:
0
10 [报告]
发表于 2009-01-02 11:04 |只看该作者
原帖由 @sky 于 2009-1-2 10:29 发表



ioctl


网络断掉,在tcp/ip底层已经判断出了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP