[发明专利]一种网络通信的方法和系统有效
申请号: | 201210061918.8 | 申请日: | 2012-03-09 |
公开(公告)号: | CN103312625A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 李文征;钟超宇;陈健;吴悦;谢明 | 申请(专利权)人: | 深圳市腾讯计算机系统有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863 |
代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络 通信 方法 系统 | ||
技术领域
本发明属于网络通信领域,尤其涉及一种收发网络数据的方法和系统。
背景技术
在网络系统的架构中,收发数据是一个很重要的问题,收发数据的及时与否直接影响到网络的优良,现有技术的收发数据都是在用户态直接调用系统进程进行数据的收发,这种方法虽然方便直接,但是每次数据的接收或发送都需要调用一次系统进程,这造成系统压力过大,网络数据收发性能低下的问题。
发明内容
本发明实施例的目的在于提供一种网络通信的方法,旨在解决在现有的网络数据收发技术直接在用户态调用系统进程,网络数据收发性能低下的问题。
本发明实施例是这样实现的,一种网络通信的方法,在系统内核中创建一个网络数据收发线程和一个侦听接口,所述方法包括下述步骤:
将所述网络数据收发线程与所述侦听接口进行关联,并将所述侦听接口加入epoll队列;
所述侦听接口对epoll队列中的事件进行侦听,当侦听到需要收发数据的事件时,对不同的事件进行处理并通知与其关联的网络数据收发线程收发数据;
所述网络数据收发线程根据所述侦听接口的通知收发网络数据。
本发明实施例的另一目的在于提供一种网络通信的系统,所述系统的内核模块中包括:
侦听接口模块,用于与网络数据收发线程模块进行关联并加入epoll队列,侦听系统epoll队列中的事件,对不同的需要收发数据的事件进行处理,并通知网络数据收发线程收发模块数据;
网络数据收发线程模块,用于与所述侦听接口模块进行关联,根据所述侦听接口模块的通知收发网络数据。
本发明实施例,通过在系统内核中建立侦听接口,侦听系统epoll队列中的事件,并通知网络数据收发线程导出socket相关的函数符号表,再在内核中使用该函数符号表对应的标准系统调用来收发数据,实现了一种在内核进程中侦听时间,在导出函数符号表后调用对应的系统标准调用收发数据的方法,避免了现有技术直接频繁使用标准系统调用,效率低下的问题。
附图说明
图1是本发明实施例提供的网络通信方法的实现流程图;
图2是本发明实施例对不同网络数据处理方法的示意图;
图3是本发明实施例提供的KMQ示意图;
图4是本发明实施例提供的数据处理线程、数据收发线程、KMQ内存的关系示意图;
图5是本发明实施例提供的网络通信系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例,通过在系统内核中建立侦听接口,侦听系统epoll队列中的事件,并通知网络数据收发线程导出socket相关的函数符号表,再在内核中使用该函数符号表对应的标准系统调用来收发数据,实现了一种在内核进程中侦听时间,在导出函数符号表后调用对应的系统标准调用收发数据的方法,避免了现有技术直接频繁使用标准系统调用,效率低下的问题。
实施例一:
图1示出了本发明实施例提供的网络通信方法的实现流程图,详述如下:
在步骤S101中,在系统内核中创建一个网络数据收发线程和一个侦听接口,将所述网络数据收发线程与所述侦听接口进行关联,并将所述侦听接口加入epoll队列。
在本发明实施例中,在系统内核中创建一个网络数据收发线程,该线程用于系统接收客户端通过网络发送的各种类型的数据,并将经过处理的数据返回给客户端。并在系统的内核中创建一个侦听接口,将该侦听接口与所述网络数据收发线程进行绑定,并将该侦听接口加入到epoll队列中,使该侦听接口在epoll队列中循环运行。
在步骤S102中,所述侦听接口对epoll队列中的事件进行侦听,当侦听到需要收发数据的事件时,对不同的事件进行处理并通知与其关联的网络数据收发线程收发数据。
在本发明实施例中,侦听接口将需要收发数据的事件分为:新连接事件、socket事件和KMQ事件三种,在这三种事件中:新连接事件是接收网络数据的事件,socket事件是接收网络数据的事件,KMQ事件则是向网络发送数据的事件。当该侦听接口侦听到epoll队列中有需要收发数据的事件时,判断所述事件的类型,通知与其关联的网络数据收发线程收发数据,对于不同的事件的处理方法具体为,如图2所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯计算机系统有限公司,未经深圳市腾讯计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210061918.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:将网页图片上传到网络相册的方法和系统
- 下一篇:一种提高白酒品级的方法