epoll模型怎么判断客户端断连

 时间:2024-10-11 20:00:14

1、方法一: 客户端正常关闭,client端close()联接,server会报某个sockfd可读,即epollin来临。 然后recv一下,如果返回0再掉用epoll_ctl中的EPOLL_CTL_DEL,同时close(sockfd)。有些系统会收到一个EPOLLRDHUP,当然检测这个是最好不过了。只可惜是有些系统,上面的方法最保险;如果能加上对EPOLLRDHUP的处理那就是万能的了

epoll模型怎么判断客户端断连

3、方法三:当使用 select()函数测试一个socket是否可读时,如果select()函数返回值为1,且使吹涡皋陕用recv()函数读取的数据长度为0 时,就说明该socket已经断开。为了更好的判定socket是否断开,我判断当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于 EINTR 。如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。

epoll模型怎么判断客户端断连
  • 百度贴吧怎么隐藏关注的贴吧
  • xftp5安装注册教程
  • Discuz!X插件开发入门教程1:创建插件项目
  • 我的世界老版本中文版怎么下载
  • 波分复用器的种类详情
  • 热门搜索
    云南旅游要多少钱 安康有哪些旅游景点 保定旅游公司 河南周边旅游景点大全 大青沟旅游 夏季旅游鞋 大理双廊旅游攻略 云南省旅游学校 呼伦贝尔市旅游局 旅游卫视广告