CN1928825A - 一种服务器的实现方法以及服务器系统 - Google Patents

一种服务器的实现方法以及服务器系统 Download PDF

Info

Publication number
CN1928825A
CN1928825A CN 200510102705 CN200510102705A CN1928825A CN 1928825 A CN1928825 A CN 1928825A CN 200510102705 CN200510102705 CN 200510102705 CN 200510102705 A CN200510102705 A CN 200510102705A CN 1928825 A CN1928825 A CN 1928825A
Authority
CN
China
Prior art keywords
client
side information
data
service response
control information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510102705
Other languages
English (en)
Other versions
CN100429624C (zh
Inventor
杨滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2005101027055A priority Critical patent/CN100429624C/zh
Publication of CN1928825A publication Critical patent/CN1928825A/zh
Application granted granted Critical
Publication of CN100429624C publication Critical patent/CN100429624C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种服务器的实现方法,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括:数据通信模块与各个客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;逻辑处理模块读取所述共享存储空间中各个客户端的通信数据,对通信数据进行逻辑处理。本发明还提供了一种服务器系统,应用本发明能简化服务器软件的开发进程。

Description

一种服务器的实现方法以及服务器系统
技术领域
本发明涉及服务器技术,特别涉及服务器的实现方法以及服务器系统。
背景技术
目前,服务器功能的实现基本包括两部分:数据通信功能和逻辑处理功能,在现有技术中,数据通信功能和逻辑处理功能集成在同一服务器模块的服务器软件中,当服务器提供服务时,运行该服务器模块的服务器软件,从而产生数据通信线程和逻辑处理线程来分别实现数据通信功能和逻辑处理功能。其中,数据通信功能用于与客户端建立连接、发送/接收数据等,逻辑处理功能用于进行协议处理,其主要作用是对客户端发来的服务请求进行分析和协议处理,并构造服务响应返回给客户端。
图1为现有技术中服务器系统的组成结构示意图。如图1所示,服务器中包括用于提供服务器功能的服务器模块,该服务器模块连接客户端。当服务器模块启动时,产生服务器进程,该服务器进程包括:数据通信线程和逻辑处理线程。其中,数据通信线程与客户端建立连接、接收客户端的服务请求、发送服务响应,当数据通信线程接收到服务请求时,将服务请求转发给逻辑处理线程;该逻辑处理线程对服务请求进行协议处理并构造服务响应,返回服务响应给数据通信线程,该数据通信线程再把服务响应返回给客户端。
但是,现有的数据通信功能与逻辑处理功能集成在同一服务器模块中,二者之间属直接耦合的关系,当数据通信功能和逻辑处理功能中任一者的代码被修改,就可能要对另一者的代码进行改动,并且数据通信功能和逻辑处理功能的代码还将作为整体一起重新编译。此外,服务器中通常要设置多个服务器模块,各个服务器模块的数据通信功能几乎相同,而各个服务器模块的差异主要在于各自的逻辑处理功能,服务器模块能为客户端提供何种服务完全取决于其中的逻辑处理功能。当服务器模块的数据通信功能发生变化时,只能对各个服务器模块的数据通信功能代码逐一进行修改。所以,如果要开发新的服务器模块以提供新的服务,不但要编写新的逻辑处理功能代码,而且还要开发新的数据通信功能代码。这里,每一服务器功能对应自身的服务器模块,每一服务器模块对应自身的服务器软件,所谓编写数据通信功能代码或逻辑处理功能代码就是指:编写服务器软件中数据通信功能或逻辑处理功能部分的代码。
可见,现有的服务器实现技术中,逻辑处理功能和数据通信功能之间还未实现独立,因此二者中任何一方的改变都有可能引发另一方的修改,而且任何一方的改变还需要二者一起重新编译才能得到更新后的服务器软件。当在服务器中实现多种服务器功能即实现多套服务器软件时,上述问题将变得更为突出,不仅维护多套服务器软件的多套逻辑处理功能和数据通信功能代码的复杂度极高,而且当要在多套服务器软件的基础上扩展服务时,逻辑处理功能和数据通信功能代码的开发难度也相当大。
发明内容
有鉴于此,本发明的主要目的在于提供一种服务器的实现方法,使服务器软件中的数据通信功能与逻辑处理模块功能相互独立,从而易于服务器的维护和扩展。
本发明的另一主要目的在于提供一种服务器系统,使服务器功能更易于维护和扩展。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种服务器的实现方法,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括:
数据通信模块与各个客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;
逻辑处理模块从所述共享存储空间读取各个客户端的通信数据,对通信数据进行逻辑处理。
其中,所述通信数据包括:通信状态和服务请求;所述数据通信模块与各个客户端建立连接并监控各个客户端的连接状态,接收来自客户端的服务请求并存储至所述共享存储空间,确定各个客户端的通信状态并存储到所述共享存储空间;所述逻辑处理模块读取所述共享存储空间中各个客户端的通信状态并根据该通信状态,分配或释放用于记录客户端连接状态的资源、或者从所述共享存储空间读取各个客户端的服务请求并对该服务请求进行协议处理。
其中,该方法进一步包括:所述逻辑处理模块进行协议处理后,确定当前协议处理状态并存储至所述共享存储空间,构造服务响应并存储至所述共享存储空间;所述数据通信模块从所述共享存储空间读取协议处理状态并根据该协议处理状态,从该共享存储空间读取服务响应并发送给对应的客户端、和/或释放自身与对应客户端之间的连接。
其中,所述共享存储空间划分为发送区和接收区;所述数据通信模块在所述接收区存储各个客户端的通信状态和服务请求,从所述发送区读取协议处理状态和服务响应;所述逻辑处理模块在所述发送区存储所述协议处理状态和服务响应,从所述接收区读取所述通信状态和服务请求。
其中,所述发送区进一步划分为:用于存储客户端信息的控制信息区和用于存储服务响应的数据区;所述接收区进一步划分为:用于存储客户端信息的控制信息区和用于存储服务请求的数据区;在发送区的控制信息区中,每一客户端信息用于指示协议处理状态;在接收区的控制信息区中,每一客户端信息用于指示通信状态。
其中,所述数据通信模块的处理包括:
A1.创建或打开共享存储空间,开始实时监控客户端的连接状态;
A2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤A3;
A3.判断是否有客户端建立连接,如果有,则向自身创建或打开的共享存储空间中接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已建立连接,再执行步骤A4;否则直接执行步骤A4;
A4.判断是否有客户端断开连接,如果有,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已断开连接,再执行步骤A5;否则直接执行步骤A5;
A5.判断是否接收到客户端的服务请求,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为接收到客户端服务请求,再执行步骤A6;否则直接执行步骤A6;
A6.判断客户端的服务响应是否发送完毕,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端服务服务响应已发送完毕,再执行步骤A7;否则直接执行步骤A7;
A7.判断自身创建或打开的共享存储空间中发送区的控制信息区是否为空,如果是,则返回步骤A2;否则依次读取该发送区的控制信息区内各个客户端信息,按各个客户端信息指示的协议处理状态确定是否从该发送区的数据区读取服务响应,并将所读取的各个客户端的服务响应发给各个客户端,再返回步骤A2;
所述逻辑处理模块的处理包括:
B1.创建或打开共享存储空间;
B2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤B3;
B3.判断自身创建或打开的共享存储空间中接收区的控制信息区是否为空,如果是,则返回步骤B2;否则执行步骤B4;
B4.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已建立连接,如果是,则为该客户端分配用于记录客户端连接状态的资源,执行步骤B8;否则执行B5;
B5.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已断开连接,如果是,则释放为该客户端分配的用于记录客户端连接状态的资源,执行步骤B8;否则执行B6;
B6.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为接收到客户端服务请求,如果是,则从该接收区的数据区读取该客户端的服务请求进行协议处理并确定该服务请求的协议处理状态,在自身创建或打开的共享存储空间中发送区的控制信息区内存入指示该服务请求协议处理状态的客户端信息,构造服务响应并存放在该发送区的数据区,再执行步骤B8;否则执行B7;
B7.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端的服务响应已发送完毕,如果是,则执行步骤B8;否则进行出错处理,再执行B8;
B8.将所述接收区的控制信息区中的下一客户端信息置为首个客户端信息,返回步骤B2。
其中,所述协议处理状态为服务请求有误或有服务响应返回给客户端;
步骤B6中,当协议处理状态为有服务响应返回给客户端时,构造服务响应;当协议处理状态为服务请求有误时,构造指示服务请求有误的服务响应或不构造任何服务响应,并释放为该客户端分配的用于记录客户端连接状态的资源;
步骤A7中,当协议处理状态为有服务响应返回给客户端时,读取服务响应并发送给所述客户端;当协议处理状态为服务请求有误时,判断发送区的数据区存有所述客户端的服务响应,如果是,则读取服务响应并发送给该客户端,同时释放与该客户端的连接;否则直接释放与该客户端的连接。
步骤B6中,当构造服务响应时,如果逻辑处理模块要返回的数据超出预设的最大数据长度,则将部分要返回的数据包含在服务响应中,并将要返回的剩余数据暂时保存;
步骤B7中,当判断客户端的服务响应发送完毕时,在执行步骤B8之前进一步包括:判断是否有暂时保存的要返回给该客户端的剩余数据,如果是,则构造包含该剩余数据的服务响应并存放在发送区的数据区,在发送区的控制信息区存入该客户端的客户端信息;否则执行步骤B8。
其中,所述客户端信息包含:客户端标识、用于指示协议处理状态或通信状态的命令字。
其中,所述客户端信息进一步包含:数据存放地址信息,该数据存放地址用于指示该客户端服务请求或服务响应在数据区的存储地址;所述读取服务请求或服务响应的方法为:根据客户端信息中数据存放地址信息确定服务请求或服务响应的存储地址,并按此存储地址从数据区读取服务请求或服务响应。
其中,所述逻辑处理模块或数据通信模块创建或打开共享存储空间时,获取该共享存储空间中发送区的数据区的首指针和接收区的数据区的首指针;所述数据存放地址信息由客户端信息存放的首指针相对于该数据区首指针的偏移量、以及该客户端信息的数据长度构成。
其中,所述获取发送区的数据区的首地址和接收区的数据区的首指针为:所述逻辑处理模块或数据通信模块启动时,获取自身创建或打开的共享存储空间的首指针、发送区大小、接收区大小、接收区的控制信息区能容纳的最大客户端信息数量、发送区的控制信息区能容纳的最大客户端信息数量,并根据所获取的信息计算得到发送区的数据区的首指针和接收区的数据区的首指针。
其中,所述发送区和接收区的控制信息区逻辑上对应各自的客户端信息队列;所述逻辑处理模块或数据通信模块创建或打开共享存储空间时,获取发送区或接收区的控制信息区的客户端信息队列的首指针和尾指针;所述控制信息区进一步记录自身对应客户端信息队列的首指针和尾指针;所述首指针用于读取该客户端信息队列中首个客户端信息,所述尾指针用于在该客户端信息队列的最后存储客户端信息。
其中,所述获取客户端信息队列的首指针和尾指针为:所述逻辑处理模块或数据通信模块启动时,获取共享存储空间的首指针、发送区大小、接收区大小、接收区的控制信息区能容纳的最大客户端信息数量、发送区的控制信息区能容纳的最大客户端信息数量。
其中,所述存储单元为内存,所述共享存储空间为共享内存。
本发明还公开了一种服务器系统,该系统设置于服务器中,该系统包括:数据通信模块,用于接收来自各客户端的通信数据并输出至所述存储单元;逻辑处理模块,用于从所述存储单元读取各客户端的通信数据并进行逻辑处理;存储单元,用于接收来自所述数据通信模块的通信数据并存储,输出所述通信数据给所述逻辑处理模块。
其中,所述逻辑处理模块进一步用于构造逻辑处理的结果并输出给所述存储单元;所述数据通信模块进一步从所述存储单元读取所述逻辑处理结果并输出给客户端。
其中,所述存储单元为内存。
由上述方案可以看出,本发明的关键在于:在服务器中独立设置存储单元、数据通信模块和逻辑处理模块,并在该存储单元中为该数据通信模块和逻辑处理模块分配共享的存储空间;数据通信模块与各个客户端进行通信,并将各客户端的通信数据保存至共享的存储空间;逻辑处理模块则从该共享的存储空间读取通信数据并进行逻辑处理。
因此,本发明提供的服务器的实现方法以及服务器系统,能够将服务器中的数据通信功能和逻辑处理功能独立开来,在实现或修改二者中任一者的过程中不必考虑另一者,并且数据通信功能和逻辑处理功能不必一起编译。从而显著降低多套服务器软件集成于同一服务器时的开发难度,更易于日后对各套服务器软件进行升级和服务扩展。
附图说明
图1为现有技术中服务器系统的组成结构示意图;
图2为本发明服务器系统的组成结构示意图;
图3为本发明方法一较佳实施例中数据通信模块侧的处理流程示意图;
图4为本发明方法一较佳实施例中逻辑处理模块侧的处理流程示意图。
具体实施方式
本发明公开了一种服务器的实现方法以及服务器系统,其主要设计思想为:在服务器中设置包括存储单元、数据通信模块和逻辑处理模块的服务器系统,并在存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间。在该服务器系统中,由数据通信模块负责与各个客户端进行通信,并将各个客户端的通信数据存储至共享存储空间;而由逻辑处理模块从共享存储空间中读取各个客户端的通信数据,对通信数据进行逻辑处理。
由于,服务器还可能需要返回通信数据逻辑处理的结果给客户端,所以逻辑处理模块还可进一步在对通信数据进行逻辑处理后,构造逻辑处理的结果并输出至存储单元的共享存储空间中;再由数据通信模块从存储单元的共享存储空间读取逻辑处理结果并输出给客户端。
其中,对于服务器来说,其负责处理的客户端的通信数据包括:客户端的通信状态和来自客户端的服务请求,其对通信数据进行的逻辑处理包括:对服务请求的协议处理,以及对通信状态的解析,其构造的逻辑处理结果则包括:服务请求协议处理后得到的协议处理状态以及准备返回给客户端的服务响应。数据通信模块与各个客户端建立连接并监控各个客户端的连接状态,接收来自客户端的服务请求并存储至共享存储空间,确定各个客户端的通信状态并存储到共享存储空间;逻辑处理模块读取共享存储空间中各个客户端的通信状态并根据该通信状态,分配或释放用于记录客户端连接状态的资源、或者从所述共享存储空间读取各个客户端的服务请求并对该服务请求进行协议处理。当逻辑处理模块对服务请求进行协议处理后,确定当前协议处理状态并存储至共享存储空间,构造服务响应并存储至共享存储空间;数据通信模块再从所述共享存储空间读取协议处理状态并根据该协议处理状态,从该共享存储空间读取服务响应并发送给对应的客户端、和/或释放自身与对应客户端之间的连接。
另外,本发明的存储单元可为服务器的内存,那么存储单元中的共享存储空间就为在内存中指定地址范围的一片地址空间,该地址空间可称为数据通信模块和逻辑处理模块分配的一片共享内存。
由于数据通信模块和逻辑处理模块分别与共享内存进行通信,数据通信模块在实现时不必考虑逻辑处理模块的实现情况,逻辑处理模块的改变也不会影响到数据通信模块。因此,当服务器实现有多套服务器软件时,各套服务器软件的数据通信模块可以是相同的,从而易于在服务器扩展服务。
图2为本发明中服务器系统的组成结构示意图。图2中,服务器中包含数据通信模块、逻辑处理模块和共享内存,数据通信模块负责与客户端进行信息交互,共享内存则连接数据通信模块和逻辑处理模块。本发明的关键在于共享内存的实现,为保证数据通信模块和逻辑处理模块对共享内存操作的准确性,并避免操作的冲突,可将共享内存进一步划分为发送区和接收区。接收区用于从数据通信模块接收服务请求和通信状态并输出给逻辑处理模块,发送区用于从逻辑处理模块接收服务响应和协议处理状态并输出给数据通信模块。另外,为进一步保证的共享内存操作的准确性,还可进一步将发送区和接收区分别划分为控制信息区和数据区。其中,控制信息区用于存放协调数据通信模块和逻辑处理模块工作的参数,即指示通信状态或协议处理状态的参数,数据区用于缓存准备发送/接收的服务请求或服务响应。本发明中,所述发送区划分为:用于存储客户端信息的控制信息区和用于存储服务响应的数据区,每一客户端信息用于指示协议处理状态;所述接收区进一步划分为:用于存储客户端信息的控制信息区和用于存储服务请求的数据区,每一客户端信息用于指示通信状态。在发送区的控制信息区中,接收区的控制信息区中,所述客户端信息包含:客户端标识、用于指示当前通信状态或协议处理状态的命令字。该客户端信息还可进一步包含数据存放地址信息。从而根据命令字可判断当前客户端的通信状态或当前客户端服务请求的协议处理状态,根据数据存放地址信息可确定当前等待处理的服务请求或准备发送的服务响应在数据区中的存储地址。其中,命令字所指示的通信状态可以为:客户端已建立连接、或客户端已断开连接、或接收到客户端的服务请求、或客户端的服务响应已发送完毕;命令字所指示的协议处理状态可以为:有服务响应返回给客户端、或服务请求有误。
由图2所述的服务器系统可见,本发明服务器系统将同一服务器功能中的数据通信功能和逻辑处理功能分为两个独立的数据通信模块和逻辑处理模块来实现,该两个模块的代码可分别单独编译,因此在服务器软件运行时,数据通信模块和逻辑处理模块分别对应数据通信进程和逻辑处理进程来进行各自的处理,使数据通信功能和逻辑处理功能独立开来,本发明可以说是一种数据通信功能和逻辑处理功能相互独立的服务器实现方法及服务器系统。而现有的服务器系统将同一服务器功能中的数据通信功能和逻辑处理功能集成在同一服务器模块中实现,数据通信功能和逻辑处理功能的代码作为一个整体的服务器模块代码一起进行编译,因此在服务器软件运行时,服务器模块对应服务器进程来实现数据通信功能和逻辑处理功能,使数据通信功能和逻辑处理功能的实现紧密耦合、相互依赖。
本发明方法包括数据通信模块侧的处理和逻辑处理模块侧的处理,其中,共享内存是一片地址连续的存储空间;接收区为从共享内存的起始地址开始的一片地址连续的存储空间,发送区为紧邻接收区之后的一片地址连续的存储空间;在接收区或发送区内部,控制信息区为从接收区或发送区起始地址开始的一片地址连续的存储空间,数据区则为紧邻控制信息区的一片地址连续的存储空间。基于该共享内存实现机制,本方法一较佳实施例也就包括数据通信模块侧和逻辑处理模块侧两部分处理,并分别如图3和图4所示。
图3为本发明一较佳实施例中数据通信模块侧的处理流程示意图。如图3所示,数据通信模块开始工作时,生成数据通信进程,该数据通信进程的具体处理包括:
步骤301:读取配置文件,获得当前共享内存的属性信息,包括:共享内存大小、接收区大小、接收区中控制信息区能容纳的最大客户端信息数量、发送区的大小、发送区的控制信息区能容纳的最大客户端信息数量等。
步骤302:判断是否已创建了当前数据通信模块的共享内存,如果是,则获取该共享内存的首指针;否则创建当前数据通信模块的共享内存并获取该共享内存的首指针,并将共享内存中的全部内容清零。
步骤303:创建与客户端之间的网络通信接口,并开始持续监听与客户端之间的网络连接状态。这里,所述网络通信接口通常指套接字(SOCKET)。
步骤304:判断是否终止服务,如果是,则执行步骤315;否则执行步骤305。
步骤305:判断是否有客户端连接,如果是,则执行步骤306;否则执行步骤307。
步骤306:与客户端建立连接,并向接收区的控制信息区存入一个客户端信息。这里,客户端信息中,命令字指示的通信状态为客户端已建立连接,因为没有服务请求到达所以数据存放地址信息被置为无效值。
由于,步骤301获取到了接收区大小、接收区中控制信息区能容纳的最大客户端信息数量、发送区的大小、发送区的控制信息区能容纳的最大客户端信息数量等共享内存属性信息,而控制信息区内每一客户端信息占用的字节数相同。因此,根据共享内存的首指针和该共享内存属性信息可计算得到发送区/接收区的控制信息区的客户端信息队列的首指针和尾指针,从而能利用该队列首指针准确定位并读取各个控制信息区的首个客户端信息,并能使用该队列尾指针向各个控制信息区存入客户端信息。
其中,每一控制信息区存储的客户端信息均对应一个逻辑上的客户端信息队列,该队列为一种先进先出的数据结构,发送区/接收区的控制信息区分别通过该队列的首指针和尾指针进行计算来存取客户端信息。这里,客户端信息队列的首指针和尾指针反映的是客户端信息的逻辑存储位置,客户端信息队列的首指针用于读取该客户端信息队列中首个客户端信息,所述尾指针用于在该客户端信息队列的最后存储客户端信息。该客户端信息队列的首指针和尾指针的初始值可为零,然后,该首指针每读取一个客户端信息,该首指针即加一,则其所指的客户端信息为该客户端信息队列中的下一客户端信息;该尾指针每存入一个客户端信息,该尾指针也加一,则其所指的客户端信息为当前客户端信息队列中的最后一个客户端信息。关于客户端信息队列、及其首指针和尾指针的具体实现细节,属公知技术,因此本文不再进一步详述。
此外,发送区/接收区的数据区也分别具有指针用于读取自身存储的服务响应或服务请求。当数据通信进程或逻辑处理进程启动时,数据通信模块或逻辑处理模块要首先获得发送区/接收区的控制信息区的首指针、客户端信息的队列首指针和尾指针、以及发送区/接收区的数据区的首指针,以准确定位各个控制信息区的首个客户端信息和各个数据区的首地址。
步骤307:判断是否有客户端断开连接,如果是,则执行步骤308;否则执行步骤309。
步骤308:向接收区的控制信息区存入一个客户端信息,其中,命令字指示的通信状态为该客户端已断开连接,因为没有服务请求到达所以数据存放地址信息也被置为无效值。
步骤309:判断是否接收到客户端的服务请求,如果是,则执行步骤310;否则执行步骤311。
步骤310:向接收区的控制信息区存入一个客户端信息,并在接收区的数据区存放当前到来的服务请求,其中,命令字指示的通信状态为接收到客户端的服务请求,数据存放地址信息指示当前服务请求的存放地址。
步骤311:判断是否客户端的服务响应发送完毕,如果是,则执行步骤312;否则执行步骤313。
步骤312:向接收区的控制信息区存入一个客户端信息,其中,命令字指示的通信状态为客户端的服务响应发送完毕,因为没有服务请求到达所以数据存放地址信息被置为无效值。
这里,如果多个客户端的服务响应发送结束、或有多个客户端发来服务请求,则针对每一客户端都要存入一个客户端信息。
步骤313:判断发送区的控制信息区是否为空,如果是,则返回步骤304;否则执行步骤314。
步骤314:获取当前发送区控制信息区的客户端信息队列的首指针,该队列首指针通过依次指向队列中的下一客户端信息来依次读取发送区的控制信息区中各个客户端信息:当发送区控制信息区的客户端信息中,命令字指示的协议处理状态为有服务响应返回给客户端时,根据该客户端信息中的数据存放地址信息确定服务响应在发送区的数据区中的存储地址,并按此地址读取服务响应,再按客户端标识将该服务响应返回给对应的客户端。当发送区控制信息区的客户端信息中命令字指示的协议处理状态为服务请求有误时,如该客户端信息中的数据存放地址信息为无效值,则说明当前没有服务响应返回,数据通信进程直接按客户端标识断开与该客户端之间的连接并回收连接资源;如该客户端信息中的数据存放地址信息为有效值,则说明当前有服务响应返回,此时根据该客户端信息中的数据存放地址信息确定服务响应在发送区的数据区中的存储地址,并按此地址读取服务响应,再按客户端标识将该服务响应返回给对应的客户端,该服务响应通常指示客户端服务请求有误等,当服务响应发送完毕后再断开与该客户端之间的连接并回收连接资源。当对发送区的控制信息区内的各个客户端信息处理完成后,返回步骤304。
步骤315:释放当前数据通信模块对应的共享内存。所述创建、或打开、或释放共享内存的方法属公知技术,通常通过创建、或打开、或释放该共享内存对应的文件映射对象来实现,本文对此不作进一步详述。
图4为本发明方法一较佳实施例中逻辑处理模块侧的处理流程示意图。如图4所示,逻辑处理模块开始工作时,生成逻辑处理进程,该逻辑处理进程的具体处理包括:
步骤401:读取配置文件,获得当前共享内存的状态信息,包括:共享内存大小、接收区大小、接收区中控制信息区能容纳的最大客户端信息数量、发送区的大小、发送区的控制信息区能容纳的最大客户端信息数量等。
步骤402:判断是否已创建了当前逻辑处理模块的共享内存,如果是,则获取该共享内存的起始指针,即获取共享内存的起始地址;否则创建当前逻辑处理模块的共享内存并获取该共享内存的起始地址,并将共享内存中的全部内容清零。
步骤403:判断是否终止服务,如果是,则执行步骤413;否则执行步骤404。
步骤404:判断接收区的控制信息区是否为空,如果是,则返回步骤403;否则执行步骤405。
步骤405:判断接收区控制信息区首个客户端信息的命令字是否指示客户端已建立连接,如果是,则执行步骤406;否则执行步骤407。
步骤406:为新客户端分配用于记录该客户端连接状态的资源,并进行初始化操作,执行步骤412。
这里,当数据通信模块与某一客户端建立连接后,逻辑处理模块需要分配资源来记录该客户端的连接状态;而当该客户端与数据通信模块断开连接时,逻辑处理模块还要释放该用于记录该客户端连接状态的资源。
步骤407:判断接收区控制信息区首个客户端信息的命令字是否指示客户端已断开连接,如果是,则执行步骤408;否则执行步骤409。
步骤408:释放为该客户端分配的用于记录该客户端连接状态的资源,执行步骤412。
步骤409:判断接收区控制信息区首个客户端信息的命令字是否指示接收到客户端的服务请求,如果是,则执行步骤410;否则执行步骤411。
步骤410:根据该客户端信息中的数据存放地址信息确定该客户端发来的服务请求在接收区的数据区的存储地址,并按此地址读取服务请求并进行分析和处理。
其中,如果该服务请求有误,则在发送区的控制信息区存入该客户端信息,其中的命令字指示服务请求有误,逻辑处理进程释放用于记录该客户端连接状态的资源,并根据实际应用的需要决定是否构造指示服务请求有误的服务响应并存放至发送区的数据区中;如果该服务请求正确,则根据该服务请求的要求进行协议处理,构造指示处理结果的服务响应并存放至发送区的数据区,在发送区的控制信息区存入该客户端信息,其中的命令字指示有服务响应返回给客户端。执行步骤412。这里,当在发送区的数据区内存放服务响应时,该客户端信息中的数据存放地址信息必然为有效值,而没有在发送区的数据区内存放服务响应时,该客户端信息中的数据存放地址信息必然为无效值。
步骤411:判断接收区控制信息区首个客户端信息的命令字是否指示客户端的服务响应已发送完毕,如果是,则执行步骤412;否则说明该客户端信息有误,进行出错处理,再执行步骤412。
其中,步骤410中,当逻辑处理进程对服务请求处理后,需要通过服务响应返回较大数据量给客户端时,所要返回的数据可能超出发送区的数据区预设的每一客户端每次发送的最大数据长度。此时,可首先构造一个服务响应将所要返回的部分数据包含在该服务响应中并存入发送区的数据区,逻辑处理进程将暂时保存剩余数据,然后当该服务响应发送完毕后再构造另一服务响应来携带剩余的数据。采用此种处理机制后,步骤411中,当判断客户端的服务响应发送完毕时,进一步包括步骤412’:判断是否还有暂时保存的要返回给该客户端的剩余数据,如果有,则构造新的服务响应,将剩余的数据包含在该新的服务响应中,在发送区的控制信息区内存入该客户端信息,其中的命令字指示有服务响应返回给客户端;否则直接执行步骤412。
步骤412:将接收区控制信息区中的下一客户端信息置为首个客户端信息,返回步骤403。
步骤413:释放当前逻辑处理模块对应的共享内存。
以上实施例中,发送区或接收区的控制信息区和数据区的数据格式需要预先设定,从而数据通信进程和逻辑处理进程可按预定的数据格式来读取控制信息区和数据区的信息。比如可设定:控制信息区中,头4个字节为控制信息区的客户端信息队列的首指针,接下来的4个字节为控制信息区的客户端信息队列的尾指针,从第9个字节开始,每13个字节填充一个客户端信息。在一个客户端信息的13个字节中,第一个字节为命令字;第二到第五个字节为客户端标识;第六个字节到第十三个字节为数据存放地址信息,该数据存放地址信息中,头四个字节为服务请求或服务响应存放在数据区的首地址相对于数据区首地址的偏移量,即首地址偏移量,后四个字节为所存放的服务请求或服务响应的数据长度。其中,由于根据所获取的共享内存属性信息可计算得到发送区/接收区的数据区的首地址,因此根据所述首地址偏移量和数据区首地址可得知服务请求或服务响应存放的首地址,该首地址结合数据长度就可确定服务请求或服务响应存放的尾地址,进而可根据首地址和尾地址成功提取到服务请求或服务响应。这里,本发明并不限定发送区或接收区的控制信息区的数据格式具体设置为何种形式。
另外,所述命令字可指示客户端已经建立连接、或客户端已断开连接、或接收到客户端的服务请求、或有服务响应要发送给客户端、或服务请求有误、或客户端的服务响应已发送完毕这六种情况,因此,可采用不同的数字来分别代表这六种情况,比如:数字1代表客户端已经建立连接,数字2代表客户端已断开连接,数字3代表接收到客户端的服务请求,数字4服务请求有误,数字5代表有服务响应要发送给客户端,数字6代表客户端的服务响应已发送完毕。这里,本发明并不限定具体采用何种数字来代表所述六种情况。
步骤412所述将接收区控制信息区中的下一客户端信息置为首个客户端信息,即使接收区控制信息区的客户端信息队列的首指针指向下一客户端信息。
基于上述发送区或接收区的控制信息区和数据区的数据格式,发送区的控制信息区首指针、发送区的数据区首指针、接收区的控制信息区首指针、接收区的数据区首指针之间的关系如下所示:
接收区的控制信息区首指针=共享内存的首指针;
接收区的数据区首指针=接收区的控制信息区首指针+每一客户端信息占用的字节数×接收区能容纳的最大客户端信息数量+接收区的控制信息区的客户端信息队列首指针和尾指针占用的字节数;
发送区的控制信息区首指针=共享内存的首指针+接收区大小;
发送区的数据区首指针=发送区的控制信息区首指针+每一客户端信息占用的字节数×发送区能容纳的最大客户端信息数量+发送区的控制信息区的客户端信息队列首指针和尾指针占用的字节数。
综上所述,应用本发明方法能够将数据通信模块和逻辑处理模块独立开来,并能保证通信的准确性。由于,数据通信模块和逻辑处理模块并不直接耦合,而通过共享内存来统一协调通信过程,因此,数据通信模块和逻辑处理模块中的任一方的修改都不会引发另一方的改变。而且,由于数据通信模块的独立,集成在同一服务器的多个服务器软件可采用相同的数据通信模块,并且同一套服务器软件的数据通信模块和逻辑处理模块可以分别进行编译,从而易于在同一服务器实现多套服务器软件,并且大大简化了服务扩展、软件升级的开发进程。

Claims (18)

1、一种服务器的实现方法,其特征在于,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括:
数据通信模块与各个客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;
逻辑处理模块从所述共享存储空间读取各个客户端的通信数据,对通信数据进行逻辑处理。
2、根据权利要求1所述的方法,其特征在于,所述通信数据包括:通信状态和服务请求;
所述数据通信模块与各个客户端建立连接并监控各个客户端的连接状态,接收来自客户端的服务请求并存储至所述共享存储空间,确定各个客户端的通信状态并存储到所述共享存储空间;
所述逻辑处理模块读取所述共享存储空间中各个客户端的通信状态并根据该通信状态,分配或释放用于记录客户端连接状态的资源、或者从所述共享存储空间读取各个客户端的服务请求并对该服务请求进行协议处理。
3、根据权利要求2所述的方法,其特征在于,该方法进一步包括:
所述逻辑处理模块进行协议处理后,确定当前协议处理状态并存储至所述共享存储空间,构造服务响应并存储至所述共享存储空间;
所述数据通信模块从所述共享存储空间读取协议处理状态并根据该协议处理状态,从该共享存储空间读取服务响应并发送给对应的客户端、和/或释放自身与对应客户端之间的连接。
4、根据权利要求3所述的方法,其特征在于,所述共享存储空间划分为发送区和接收区;
所述数据通信模块在所述接收区存储各个客户端的通信状态和服务请求,从所述发送区读取协议处理状态和服务响应;
所述逻辑处理模块在所述发送区存储所述协议处理状态和服务响应,从所述接收区读取所述通信状态和服务请求。
5、根据权利要求4所述的方法,其特征在于,所述发送区进一步划分为:用于存储客户端信息的控制信息区和用于存储服务响应的数据区;所述接收区进一步划分为:用于存储客户端信息的控制信息区和用于存储服务请求的数据区;在发送区的控制信息区中,每一客户端信息用于指示协议处理状态;在接收区的控制信息区中,每一客户端信息用于指示通信状态。
6、根据权利要求5所述的方法,其特征在于,所述数据通信模块的处理包括:
A1.创建或打开共享存储空间,开始实时监控客户端的连接状态;
A2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤A3;
A3.判断是否有客户端建立连接,如果有,则向自身创建或打开的共享存储空间中接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已建立连接,再执行步骤A4;否则直接执行步骤A4;
A4.判断是否有客户端断开连接,如果有,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已断开连接,再执行步骤A5;否则直接执行步骤A5;
A5.判断是否接收到客户端的服务请求,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为接收到客户端服务请求,再执行步骤A6;否则直接执行步骤A6;
A6.判断客户端的服务响应是否发送完毕,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端服务服务响应已发送完毕,再执行步骤A7;否则直接执行步骤A7;
A7.判断自身创建或打开的共享存储空间中发送区的控制信息区是否为空,如果是,则返回步骤A2;否则依次读取该发送区的控制信息区内各个客户端信息,按各个客户端信息指示的协议处理状态确定是否从该发送区的数据区读取服务响应,并将所读取的各个客户端的服务响应发给各个客户端,再返回步骤A2;
所述逻辑处理模块的处理包括:
B1.创建或打开共享存储空间;
B2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤B3;
B3.判断自身创建或打开的共享存储空间中接收区的控制信息区是否为空,如果是,则返回步骤B2;否则执行步骤B4;
B4.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已建立连接,如果是,则为该客户端分配用于记录客户端连接状态的资源,执行步骤B8;否则执行B5;
B5.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已断开连接,如果是,则释放为该客户端分配的用于记录客户端连接状态的资源,执行步骤B8;否则执行B6;
B6.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为接收到客户端服务请求,如果是,则从该接收区的数据区读取该客户端的服务请求进行协议处理并确定该服务请求的协议处理状态,在自身创建或打开的共享存储空间中发送区的控制信息区内存入指示该服务请求协议处理状态的客户端信息,构造服务响应并存放在该发送区的数据区,再执行步骤B8;否则执行B7;
B7.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端的服务响应已发送完毕,如果是,则执行步骤B8;否则进行出错处理,再执行B8;
B8.将所述接收区的控制信息区中的下一客户端信息置为首个客户端信息,返回步骤B2。
7、根据权利要求6所述的方法,其特征在于,所述协议处理状态为服务请求有误或有服务响应返回给客户端;
步骤B6中,当协议处理状态为有服务响应返回给客户端时,构造服务响应;当协议处理状态为服务请求有误时,构造指示服务请求有误的服务响应或不构造任何服务响应,并释放为该客户端分配的用于记录客户端连接状态的资源;
步骤A7中,当协议处理状态为有服务响应返回给客户端时,读取服务响应并发送给所述客户端;当协议处理状态为服务请求有误时,判断发送区的数据区存有所述客户端的服务响应,如果是,则读取服务响应并发送给该客户端,同时释放与该客户端的连接;否则直接释放与该客户端的连接。
8、根据权利要求6或7所述的方法,其特征在于,步骤B6中,当构造服务响应时,如果逻辑处理模块要返回的数据超出预设的最大数据长度,则将部分要返回的数据包含在服务响应中,并将要返回的剩余数据暂时保存;
步骤B7中,当判断客户端的服务响应发送完毕时,在执行步骤B8之前进一步包括:判断是否有暂时保存的要返回给该客户端的剩余数据,如果是,则构造包含该剩余数据的服务响应并存放在发送区的数据区,在发送区的控制信息区存入该客户端的客户端信息;否则执行步骤B8。
9、根据权利要求5或6所述的方法,其特征在于,所述客户端信息包含:客户端标识、用于指示协议处理状态或通信状态的命令字。
10、根据权利要求9所述的方法,其特征在于,所述客户端信息进一步包含:数据存放地址信息,该数据存放地址用于指示该客户端服务请求或服务响应在数据区的存储地址;
所述读取服务请求或服务响应的方法为:根据客户端信息中数据存放地址信息确定服务请求或服务响应的存储地址,并按此存储地址从数据区读取服务请求或服务响应。
11、根据权利要求10所述的方法,其特征在于,所述逻辑处理模块或数据通信模块创建或打开共享存储空间时,获取该共享存储空间中发送区的数据区的首指针和接收区的数据区的首指针;
所述数据存放地址信息由客户端信息存放的首指针相对于该数据区首指针的偏移量、以及该客户端信息的数据长度构成。
12、根据权利要求11所述的方法,其特征在于,所述获取发送区的数据区的首地址和接收区的数据区的首指针为:
所述逻辑处理模块或数据通信模块启动时,获取自身创建或打开的共享存储空间的首指针、发送区大小、接收区大小、接收区的控制信息区能容纳的最大客户端信息数量、发送区的控制信息区能容纳的最大客户端信息数量,并根据所获取的信息计算得到发送区的数据区的首指针和接收区的数据区的首指针。
13、根据权利要求5或6所述的方法,其特征在于,所述发送区和接收区的控制信息区逻辑上对应各自的客户端信息队列;所述逻辑处理模块或数据通信模块创建或打开共享存储空间时,获取发送区或接收区的控制信息区的客户端信息队列的首指针和尾指针;所述控制信息区进一步记录自身对应客户端信息队列的首指针和尾指针;所述首指针用于读取该客户端信息队列中首个客户端信息,所述尾指针用于在该客户端信息队列的最后存储客户端信息。
14、根据权利要求13所述的方法,其特征在于,所述获取客户端信息队列的首指针和尾指针为:所述逻辑处理模块或数据通信模块启动时,获取共享存储空间的首指针、发送区大小、接收区大小、接收区的控制信息区能容纳的最大客户端信息数量、发送区的控制信息区能容纳的最大客户端信息数量。
15、根据权利要求1至6任一项所述的方法,其特征在于,所述存储单元为内存,所述共享存储空间为共享内存。
16、一种服务器系统,该系统设置于服务器中,其特征在于,该系统包括:
数据通信模块,用于接收来自各客户端的通信数据并输出至所述存储单元;
逻辑处理模块,用于从所述存储单元读取各客户端的通信数据并进行逻辑处理;
存储单元,用于接收来自所述数据通信模块的通信数据并存储,输出所述通信数据给所述逻辑处理模块。
17、根据权利要求16所述的系统,其特征在于,所述逻辑处理模块进一步用于构造逻辑处理结果并输出给所述存储单元;
所述数据通信模块进一步从所述存储单元读取所述逻辑处理结果并输出给客户端。
18、根据权利要求16或17所述的系统,其特征在于,所述存储单元为内存。
CNB2005101027055A 2005-09-09 2005-09-09 一种服务器的实现方法以及服务器系统 Active CN100429624C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101027055A CN100429624C (zh) 2005-09-09 2005-09-09 一种服务器的实现方法以及服务器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101027055A CN100429624C (zh) 2005-09-09 2005-09-09 一种服务器的实现方法以及服务器系统

Publications (2)

Publication Number Publication Date
CN1928825A true CN1928825A (zh) 2007-03-14
CN100429624C CN100429624C (zh) 2008-10-29

Family

ID=37858799

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101027055A Active CN100429624C (zh) 2005-09-09 2005-09-09 一种服务器的实现方法以及服务器系统

Country Status (1)

Country Link
CN (1) CN100429624C (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694784A (zh) * 2011-03-25 2012-09-26 北京网鼎芯睿科技有限公司 一种优化的服务器端ip数据发送方法和装置
CN102750241A (zh) * 2012-06-13 2012-10-24 中国科学院声学研究所 一种上位机和下位机之间的通信方法及系统
CN102890644A (zh) * 2011-07-20 2013-01-23 郑州威科姆科技股份有限公司 一种基于字节流的进程间通讯方法
CN103176854A (zh) * 2011-12-26 2013-06-26 腾讯科技(深圳)有限公司 一种进程间通信方法、装置及系统
CN103731405A (zh) * 2012-10-16 2014-04-16 华为技术有限公司 演示端设备在数据共享时呈现共享信息的方法和设备
CN106126359A (zh) * 2016-08-25 2016-11-16 成都交大光芒科技股份有限公司 进程间共享数据的快速传输方法
CN107181639A (zh) * 2017-03-31 2017-09-19 北京奇艺世纪科技有限公司 一种通信状态的监控方法及装置
CN107291383A (zh) * 2017-05-23 2017-10-24 许继集团有限公司 一种嵌入式设备的数据交互方法及服务器
CN107391281A (zh) * 2017-08-09 2017-11-24 腾讯科技(深圳)有限公司 一种服务器的数据处理方法、装置和存储介质
CN107391388A (zh) * 2016-05-17 2017-11-24 阿里巴巴集团控股有限公司 一种基于即时通信进行数据存储的方法和设备
CN109947572A (zh) * 2019-03-25 2019-06-28 Oppo广东移动通信有限公司 通信控制方法、装置、电子设备及存储介质
CN112540857A (zh) * 2019-09-23 2021-03-23 北京比特大陆科技有限公司 处理工作量证明计算任务的方法、装置和系统
CN112540857B (zh) * 2019-09-23 2024-06-04 北京比特大陆科技有限公司 处理工作量证明计算任务的方法、装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60033164T2 (de) * 2000-12-22 2007-10-25 Sun Microsystems, Inc., Palo Alto Serverseitige Ausführung von Anwendungsmodulen in einem Client/Server-System
JP2003131839A (ja) * 2001-10-29 2003-05-09 Canon Inc ネットワークシステム、情報処理装置、情報処理方法、及び、制御プログラム
CN1306403C (zh) * 2003-12-30 2007-03-21 北京金山数字娱乐科技有限公司 一种用于游戏的网络服务器系统

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694784A (zh) * 2011-03-25 2012-09-26 北京网鼎芯睿科技有限公司 一种优化的服务器端ip数据发送方法和装置
CN102890644A (zh) * 2011-07-20 2013-01-23 郑州威科姆科技股份有限公司 一种基于字节流的进程间通讯方法
CN102890644B (zh) * 2011-07-20 2015-01-14 郑州威科姆科技股份有限公司 一种基于字节流的进程间通讯方法
CN103176854B (zh) * 2011-12-26 2018-09-07 腾讯科技(深圳)有限公司 一种进程间通信方法、装置及系统
CN103176854A (zh) * 2011-12-26 2013-06-26 腾讯科技(深圳)有限公司 一种进程间通信方法、装置及系统
CN102750241A (zh) * 2012-06-13 2012-10-24 中国科学院声学研究所 一种上位机和下位机之间的通信方法及系统
CN103731405A (zh) * 2012-10-16 2014-04-16 华为技术有限公司 演示端设备在数据共享时呈现共享信息的方法和设备
CN103731405B (zh) * 2012-10-16 2017-08-29 华为技术有限公司 演示端设备在数据共享时呈现共享信息的方法和设备
CN107391388A (zh) * 2016-05-17 2017-11-24 阿里巴巴集团控股有限公司 一种基于即时通信进行数据存储的方法和设备
CN107391388B (zh) * 2016-05-17 2021-06-11 阿里巴巴集团控股有限公司 一种基于即时通信进行数据存储的方法和设备
CN106126359A (zh) * 2016-08-25 2016-11-16 成都交大光芒科技股份有限公司 进程间共享数据的快速传输方法
CN106126359B (zh) * 2016-08-25 2019-10-18 成都交大光芒科技股份有限公司 进程间共享数据的快速传输方法
CN107181639A (zh) * 2017-03-31 2017-09-19 北京奇艺世纪科技有限公司 一种通信状态的监控方法及装置
CN107291383A (zh) * 2017-05-23 2017-10-24 许继集团有限公司 一种嵌入式设备的数据交互方法及服务器
CN107391281A (zh) * 2017-08-09 2017-11-24 腾讯科技(深圳)有限公司 一种服务器的数据处理方法、装置和存储介质
CN109947572A (zh) * 2019-03-25 2019-06-28 Oppo广东移动通信有限公司 通信控制方法、装置、电子设备及存储介质
CN109947572B (zh) * 2019-03-25 2023-09-05 Oppo广东移动通信有限公司 通信控制方法、装置、电子设备及存储介质
CN112540857A (zh) * 2019-09-23 2021-03-23 北京比特大陆科技有限公司 处理工作量证明计算任务的方法、装置和系统
CN112540857B (zh) * 2019-09-23 2024-06-04 北京比特大陆科技有限公司 处理工作量证明计算任务的方法、装置和系统

Also Published As

Publication number Publication date
CN100429624C (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
CN1928825A (zh) 一种服务器的实现方法以及服务器系统
CN1127833C (zh) 分组处理设备、分组处理方法和分组交换
CN1859669A (zh) 一种在移动终端中实现虚拟存储的方法及系统
CN1975680A (zh) 基于Java的进程间异步通信的实现方法
CN1681248A (zh) 服务器与客户端间传送用于数据同步的数据的方法与系统
CN1685326A (zh) 总线连接系统
CN101047714A (zh) 一种处理网络数据的方法及系统
CN1870569A (zh) 网络系统及其管理方法,通信终端和报文发送方法
CN1828541A (zh) Java操作系统中定时任务的实现方法
CN101046786A (zh) 一种实现高效dma传输的dma控制器及传输方法
CN1842073A (zh) 一种实现网络计算机的外部设备映射的方法
CN1527509A (zh) 一种测试方法
CN1324844C (zh) 网管系统向网元同步配置数据的方法
CN1829220A (zh) 一种具有存储功能的usb设备在网络计算机上的映射方法
CN1852261A (zh) 维护邻居表项的方法
CN1945521A (zh) 一种非同质存储设备的虚拟化系统及方法
CN1514353A (zh) 基于动态内核实现跨地址空间创建构件对象的方法
CN1140525A (zh) 处理补充业务之间的相互作用
CN101052031A (zh) 苹果计算机与无线通讯终端进行数据交互的方法
CN1881936A (zh) 一种路由器虚拟驱动模块的动态加载与控制方法
CN1622553A (zh) 一种基于因特网标准文件传输协议的文件断点上载方法
CN1956392A (zh) 实现多业务板架构的方法、装置和系统
CN1780254A (zh) 网络处理器中使用缓冲区的方法
CN1394413A (zh) 通信控制装置及方法
CN100343812C (zh) 提高归属位置寄存器接口系统处理速度的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant