[发明专利]一种时间可控的客户端服务器传输方法有效
| 申请号: | 201110364294.2 | 申请日: | 2011-11-17 |
| 公开(公告)号: | CN102413133A | 公开(公告)日: | 2012-04-11 |
| 发明(设计)人: | 袁清波;许建卫;刘新春;邵宗有 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
| 地址: | 100084 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 时间 可控 客户端 服务器 传输 方法 | ||
技术领域
本发明涉及数据传输,具体来说,涉及一种时间可控的客户端服务器传输方法。
背景技术
大部分网络协议的实现都由客户端和服务器端来协作完成。这种模型本质上涉及两个不同的程序,通常这两个程序在不同机器上运行。这些机器之间都有网络连接,服务器端程序提供服务并对来自客户程序的请求做出响应,而客户端程序则是在使用者和服务器端程序之间建立某种沟通的渠道,或者是作为使用服务器提供的某种网络服务的工具。一个典型的服务器与客户端之间的交互可能如下所示:
客户端发出一个请求;
服务器收到客户端的请求,进行分析处理;
服务器将运行处理的结果返回给客户端。
通常一个服务器需要向多个客户端提供服务,因此对服务器来说,还需要考虑如何有效地处理多个客户的请求。
Socket的连接类型可以分为两种,分别是面向连接的字节流类型和面向无连接数据报类。面向无连接数据报类型的Socket工作流程比较简单,双方不需要进行太多的沟通与交互,客户端直接将用户的请求打包发送到服务器端,省略了建立一个固定信息通道的过程,服务器端也是直接将处理的结果发送给客户端,每个发送的数据报都携带有传递所需要的所有地址信息;面向连接的字节流类型的Socket工作中有比较严格的操作次序,工作的原理也比较复杂。在这种类型的Socket的工作过程中.必须首先启动服务器端,通过调用Socket()函数建立一个Socket对象,然后调用Bind()函数将该Socket对象和本地网络地址绑定到一起。再调用Listen()函数使该Socket对象处于侦听状态,并规定它的最大请求的数量,其工作流程如图1所示。总的来说,无连接和面向连接的通信方式各有长处和短处,在仅仅涉及少量的信息传递的场合可以使用无连接操作,如果涉及大量信息传递的场合可以采用面向连接操作。
发明内容
为解决上述问题,本发明提供了一种时间可控的客户端服务器传输方法。
一种时间可控的客户端服务器传输方法,在客户端和服务器操作中,将每个操作函数分为阻塞函数和非阻塞函数,为客户端和服务器连接过程中的阻塞函数创建独立的等待线程,对于发送和接收函数,设置一个超时重连参数。
优选的,所述等待线程在创建后,连接过程中的主线程可以继续执行其它操作。
优选的,所述发送和接收函数无论是否成功都会在超时重连参数时间之内做出返回。
优选的,所述操作封装成lib库的形式提供给用户,包括客户端和服务器端两部分。
优选的,所述服务器端的lib库包括:
服务器初始化库,用于初始化服务器端运行环境,输入参数为IP地址、端口,执行的操作为创建一个socket、绑定到指定地址和端口、设置侦听,另外专门创建一个新的线程来等待客户端的连接;如果整个过程没有错误则返回给用户新创建的socket,如果出错则通知用户出错的地方和原因;
服务器发送库,用于发送数据到指定客户端,输入参数为socket句柄、数据缓冲区地址和大小、timeout;该函数采用非阻塞方式循环发送数据,一旦超过timeout时间则终止发送,并通知用户;否则一直尝试发送缓冲区数据到指定客户端;
服务器接收库,用于从客户端收取数据,输入参数为socket句柄、接收缓冲区地址和大小、timeout;该函数采用非阻塞方式循环接收数据,一旦超过timeout时间则终止接收过程,并通知用户;否则一直尝试从指定客户端接收数据;
服务器中止库,用于终止整个运行环境,输入参数为socket句柄,该函数关闭socket连接并终止之前建立的线程,整个过程没有阻塞操作。
优选的,所述客户端的lib库包括:
客户端初始化库,用于初始化客户端运行环境,输入参数为服务器端的IP地址、端口、timeout,执行的操作为创建一个socket,并用此socket连接服务器端,连接过程是非阻塞的,尝试时间超过用户指定的timeout后不再尝试,而是返回给用户具体的出错原因,等待用户的进一步动作;
客户端发送库,用于发送数据到指定客户端,输入参数为socket句柄、数据缓冲区地址和大小、timeout;该函数采用非阻塞方式循环发送数据,一旦超过timeout时间则终止发送,并通知用户;否则一直尝试发送缓冲区数据到指定客户端;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110364294.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:炊具的开合盖装置
- 下一篇:一种用于治疗银屑病的中药组合物





