[发明专利]一种多线程高性能http代理实现方法及系统有效
申请号: | 201410619737.1 | 申请日: | 2014-11-05 |
公开(公告)号: | CN104320404B | 公开(公告)日: | 2017-10-03 |
发明(设计)人: | 陆世亮;朱明 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京凯特来知识产权代理有限公司11260 | 代理人: | 郑立明,郑哲 |
地址: | 230026 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 性能 http 代理 实现 方法 系统 | ||
1.一种多线程高性能http代理实现方法,其特征在于,该方法包括:
通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
通过该服务器从哈希表中定位该客户端套接字,并触发客户端的EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
2.根据权利要求1所述的方法,其特征在于,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
3.一种多线程高性能http代理实现系统,其特征在于,该系统包括:
接收连接模块,用于通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
读取请求模块,用于当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
转发请求模块,用于从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
读取响应模块,用于当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
响应转发模块,用于通过该服务器从哈希表中定位该客户端套接字,并触发客户端的EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
4.根据权利要求3所述的系统,其特征在于,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410619737.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:民用航空器的娱乐系统及方法
- 下一篇:一种校平移工装