unix domain socket判断客户端断开连接

本文介绍了在网络编程中如何检测客户端连接状态的方法。对于使用Poll管理的情况,可以通过pollfd的revents如POLLHUP判断客户端fd是否断开;在Select管理下,无论是阻塞还是非阻塞fd,都可以通过read或recv返回值为0来判断连接是否断开;send操作时,无论哪一端断开,都会触发SIGPIPE信号。

1. 使用Poll管理的时候,可以用 pollfd 的 revents来判断客户端fd是否断开,比如 POLLHUP

2. 使用Select 管理的时候,不管是阻塞或者是非阻塞的 fd, 都可以用 read 或者 recv 返回值为 0 来判断客户端是否断开连接。注意的非阻塞的 fd,在数据没有准备好的时候,要判断errno 为 EWOULDBLOCK 或者 EAGAIN

3. send 的时候,不管是服务器端还是客户端断开,都会发出SIGEPIPE 的信号。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值