免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: maxmaxsh
打印 上一主题 下一主题

socket 超时问题如何解决 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2008-10-29 17:00 |只看该作者
用select吧

论坛徽章:
0
42 [报告]
发表于 2009-02-10 12:08 |只看该作者
int timeout = -1;//单位毫秒
int m_checkTime = 10;//单位秒 代表你要间隔多少时间去扫描
if(m_checkTime > 0)
{
    timeout = m_checkTime * 1000;
    time(&time_out_time);
    time_out_time += m_checkTime;
}
while(1)
{
    int nfds = epoll_wait(m_epfd, events, EPOLL_MAX_EVENTS, timeout);
    for(i = 0; i < nfds; i++)
    {
     //处理epoll逻辑
    }
    if(m_checkTime > 0)
    {
         time_t        cur_time;
         time(&cur_time);
        if (cur_time >= time_out_time)
        {
             //判断哪个用户超时 超时了踢掉
        time(&time_out_time);
            time_out_time += m_checkTime;
        }
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP