08 2010 档案

服务器超时管理问题
摘要:问题描述:* 有一个最多能处理N个客户连接的服务器,活跃的连接总是少数; * 为了能够处理更多的连接,需要对每个连接都增加一个超时机制,当总连接数达到N时,某个连接一旦超时,有新的连接请求时,就把超时的关掉,并处理新连接; * 如果总数没有达到N,总是接受新连接; * 每个连接一旦有数据请求,就认为它活跃了,此时,服务器还接受一个lease,也就是一个超时时间,这个时间对每个连接,每次活跃时,都不一样 * 如果使用 epoll 一类的系统接口,也就是说在连接活跃时我们能够从系统得到自定义的一个handle,如何实现这样的需求,关键是使用什么数据结构和算法?提示:使用heap ,需要从heap中 阅读全文

posted @ 2010-08-19 10:57 能发波 阅读(136) 评论(0) 推荐(0)

使用 std::map 查找 IP 范围
摘要:给定这样一个问题:有一组从IP范围到地理位置信息的数据,不同地点的IP范围没有重叠,实现从单个IP地址查到相应的地理位置。数据示例start end geo-loc1000 2000 北京3000 3500 上海4000 5000 广州5200 5500 延安6000 7000 西藏这里将只重点说明实现方式,具体为什么这么做,仅简单介绍。std::map 有三个不太常用的成员函数:iterator lower_bound(const key_type& key);iterator upper_bound(con... 阅读全文

posted @ 2010-08-05 17:22 能发波 阅读(358) 评论(0) 推荐(0)

导航