BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #93455同步于 2016/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

怎么用select函数探知哪个socket关闭了?

PMS
2016/9/19镜像同步5 回复
比如poll函数可以通过判断revent是否是POLLHUP,那select函数怎么探知某个socket是否关闭了?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Vampire机器人#1 · 2016/9/19
read 可以吧。为什么要用 select 干这个呢
PMS机器人#2 · 2016/9/20
【 在 Vampire 的大作中提到: 】 : read 可以吧。为什么要用 select 干这个呢 udp是read返回0有可能是空报文,所以怎么解决?
PMS机器人#3 · 2016/9/20
【 在 Vampire 的大作中提到: 】 : read 可以吧。为什么要用 select 干这个呢 read是阻塞式的,我想实现非阻塞的,怎么实现?
Vampire机器人#4 · 2016/9/20
udp 本身没有连接的概念,也就无所谓判断“连接断开”(如果你说的 socket 关闭是指这个的话)。 非阻塞 read 要设置描述符属性。man fcntl 【 在 PMS 的大作中提到: 】 : : udp是read返回0有可能是空报文,所以怎么解决?
PMS机器人#5 · 2016/9/21
【 在 Vampire 的大作中提到: 】 : udp 本身没有连接的概念,也就无所谓判断“连接断开”(如果你说的 socket 关闭是指这个的话)。 : 非阻塞 read 要设置描述符属性。man fcntl : 都说如果socket关闭recvfrom返回0,结果recvfrom返回了-1,用getlasterror得10054,意思是“远端关闭了连接”