CN104636210B - 一种实现进程间数据交换的方法及装置 - Google Patents

一种实现进程间数据交换的方法及装置 Download PDF

Info

Publication number
CN104636210B
CN104636210B CN201310549591.3A CN201310549591A CN104636210B CN 104636210 B CN104636210 B CN 104636210B CN 201310549591 A CN201310549591 A CN 201310549591A CN 104636210 B CN104636210 B CN 104636210B
Authority
CN
China
Prior art keywords
client
server
interface
data
cfmessageport
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.)
Active
Application number
CN201310549591.3A
Other languages
English (en)
Other versions
CN104636210A (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 CN201310549591.3A priority Critical patent/CN104636210B/zh
Priority to PCT/CN2014/090214 priority patent/WO2015067162A1/en
Publication of CN104636210A publication Critical patent/CN104636210A/zh
Priority to US15/149,259 priority patent/US9965341B2/en
Application granted granted Critical
Publication of CN104636210B publication Critical patent/CN104636210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

一种实现进程间数据交换的方法,包括:将CFMessagePort封装出服务端接口和客户端接口,服务端进程通过该服务端接口与该CFMessagePort建立服务,客户端进程调用该客户端接口向该服务端进程发送数据处理请求,其中包含所请求的服务端进程的名称,该CFMessagePort根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程。上述实现进程间数据交换的方法及装置,可提高数据处理速度。

Description

一种实现进程间数据交换的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种实现进程间数据交换的方法及装置。
背景技术
IOS系统为了保证程序有足够的资源来运行的更加稳定、流畅,对程序的运行做了很多的限制,例如不能在后台运行非系统级别的程序,程序切换到后台会在很短时间后被系统挂起停止运行。程序之间不能相互访问资源,因此不能进行程序(或进程)间数据交换。
现有技术中,主要采用socket方式来进行数据交换,socket用于描述IP地址和端口,是一个通信链的句柄。Socket正如其英文原意“插座”那样,象一个多孔插座。主机一般运行多个服务软件,同时提供几种服务,每种服务都打开一个Socket并绑定到一个端口上,不同的端口对应于不同的服务。两个进程之间进行数据交换时,需要该两个进程中一方作为服务端(server)建立起来,另一方则作为客户端(client)连接到服务端给定的接口后就可以进行数据交换。
但是在上述现有技术中,存在下述缺陷:由于需要事先获知服务端进程提供的端口,同时还存在端口被其他进程中的服务端方占用的风险,因此需要在服务端采用动态端口的方式,这就需要借助其他方式将端口通知客户端进程。服务端进程或者客户端进程之间的连接不稳定导致socket连接断开或者发送数据超时,则需要重新连接服务端进程和客户端进程,或者重新发送数据,因此进程间建立和维护socket连接比较繁琐。另外,由于需要事先在进程之间建立服务端和客户端连接,只适合服务端和客户端一对一连接的“星状”的程序架构方式,应用范围窄,并且,对于多个进程之间交互连接的网状连接方式进行数据交换时,则需要在每个进程内部都各自建立一个服务端接口和客户端接口才能满足需要,这样服务端进程和客户端进程之间的数据交换维护起来更加的困难和繁杂,同时对于使用不是很频繁、对数据的实时性要求很高的需求,采用socket方式来实现会大部分时间段无效的占用了系统资源。
发明内容
有鉴于此,本发明提供一种实现进程间数据交换的方法及装置,用于提高进程间处理并交换数据的效率。
本发明实施例提供的实现进程间数据交换的方法,包括:将CFMessagePort进行封装,使得所述CFMessagePort同时为进程提供服务端接口和客户端接口;服务端进程通过所述服务端接口与所述CFMessagePort建立服务;客户端进程调用所述客户端接口向所述服务端进程发送数据处理请求,所述数据处理请求中包含所请求的所述服务端进程的名称;所述CFMessagePort根据所述服务端进程的名称,在所述客户端进程和所述服务端进程之间建立连接,将所述客户端进程发送的请求处理的数据,转发给所述服务端进程进行处理,并将处理后的数据转发给所述客户端进程。
本发明实施例提供的实现进程间数据交换的装置,包括:封装单元,用于将CFMessagePort进行封装,使得所述CFMessagePort同时为进程提供服务端接口和客户端接口;第一建立单元,用于服务端进程通过所述封装单元封装得到的所述服务端接口与所述CFMessagePort建立服务;发送单元,用于客户端进程调用所述封装单元封装得到的所述客户端接口向所述服务端进程发送数据处理请求,所述数据处理请求中包含所请求的所述服务端进程的名称;第二建立单元,用于所述CFMessagePort根据所述发送单元发送的所述服务端进程的名称,在所述客户端进程和所述服务端进程之间建立连接;所述发送单元,还用于将所述客户端进程发送的请求处理的数据,转发给所述服务端进程进行处理,并将处理后的数据转发给所述客户端进程。
本发明实施例提供的实现进程间数据交换的方法及装置,将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口,客户端进程调用该客户端接口向该服务端进程发送数据处理请求,CFMessagePort根据该数据处理请求中包含的服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程,至此完成客户端进程与服务端进程之间数据的交换,加快数据交换速度,提高数据交换效率,并且,由于采用上述方式可根据客户端进程的名称在服务端进程和客户端进程间简单、快速地建立连接,不仅适合于进程间一对一连接的“星状”的程序结构,还适合多进程之间交互连接的“网状”的程序结构,对于在“网状”结构中进行数据交换时,则不需要在每个进程内部都建立服务端接口和客户端接口,维护更加的简便,更有效的利用系统资源。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明实施例中实现进程间数据交换的方法的一个实施例示意图;
图2为本发明实施例中进程间通过CFMessagePort的接口进行数据交换的示意图;
图3为本发明实施例中实现进程间数据交换的方法的另一个实施例示意图;
图4为本发明实施例中实现进程间数据交换的装置的一个实施例示意图;
图5为本发明实施例中实现进程间数据交换的装置的另一个实施例示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
本发明实施例所提供的实现进程间数据交换的方法,可以提高进程间数据交换的效率。
请参阅图1,本发明实施例中的实现进程间数据交换的方法的一个实施例包括:
101、将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口;
系统中的network engine(网络引擎)模块将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端(server)接口和客户端(client)接口,请参阅图2,服务端(server)进程启动后,调用服务端接口建立服务,而客户端(client)进程在发送数据请求时,调用对应的客户端接口即可,这样便于进程能够更加方便的使用CFMessagePort进行数据交换。
需要说明的是,包括本实施例在内的各实施例中,在数据交换过程中,将作为服务端的进程称为服务端进程,将作为客户端的进程的称为客户端进程。
102、服务端进程通过该服务端接口与该CFMessagePort建立服务;
服务端进程运行,并通过该CFMessagePort的该服务端接口与该CFMessagePort建立服务。
103、客户端进程调用该客户端接口向该服务端进程发送数据处理请求,该数据处理请求中包含所请求的该服务端进程的名称;
客户端进程调用该CFMessagePort的该客户端接口,向该服务端进程发送数据处理请求,请求该服务端进程处理该客户端进程发送的数据,在该数据处理请求中包含所请求的该服务端进程的名称,该服务端进程的名称可以由服务端进程和客户端进程事先约定。本实施例中,客户端进程只需得知所请求处理数据的服务端进程的名称,即可调用CFMessagePort的客户端接口向该服务端进程发送数据处理请求。
104、该CFMessagePort根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程。
CFMessagePort的客户端接口根据服务端进程的名称,在该客户端进程和与该名称对应的服务端进程之间建立连接,将该客户端进程发送的请求处理的数据转发给该服务端进程进行处理,并将该服务端进程处理后的数据转发给该客户端进程。
本发明实施例中,将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口,客户端进程调用该客户端接口向该服务端进程发送数据处理请求,CFMessagePort根据该数据处理请求中包含的服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程,至此完成客户端进程与服务端进程之间数据的交换,提高数据交换效率,并且,由于采用上述方式可根据服务端进程的名称在服务端进程和客户端进程间简单、快速地建立连接,不仅适合于进程间一对一连接的“星状”的程序结构,还适合多进程之间交互连接的“网状”的程序结构,对于在“网状”结构中进行数据交换时,则不需要在每个进程内部都建立服务端接口和客户端接口,维护更加的简便,更有效的利用系统资源。
请参阅图3,本发明实施例中的实现进程间数据交换的方法的另一个实施例包括:
301、将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口;
302、服务端进程通过该服务端接口与该CFMessagePort建立服务;
本实施例中步骤201、202的内容,请分别参见前述图1所示实施例中步骤101、102的内容,此处不再赘述。
303、该客户端进程通过该客户端接口判断该服务端进程是否已运行;
将CFMessagePort进行封装后产生的客户端接口可具备为客户端进程提供判断服务端进程是否有效的功能。客户端进程在请求服务端进程处理数据之前,先调用CFMessagePort的客户端接口判断服务端进程是否存在并有效运行,避免数据发送失败。
若服务端进程已运行,则执行步骤204,若服务端进程不存在或无效,则客户端进程无法请求该服务端进程进行处理,结束本实施例的进程。
304、客户端进程调用该客户端接口向该服务端进程发送数据处理请求,该数据处理请求中包含所请求的该服务端进程的名称;
本实施例中,将CFMessagePort进行封装后产生的客户端接口可具备为客户端进程提供同步及异步两种方式数据请求处理的功能,客户端进程可发送同步或异步两种方式的数据处理请求,即,该客户端进程通过该客户端接口发送同步数据处理请求或异步数据处理请求。若客户端进程发送的是需要服务端进程处理并回复的数据处理请求,则该客户端进程在发送数据时,通过CFmessagePort接口的客户端接口注册回调接口,当接收到服务端进程处理后的数据时,则根据注册的该回调接口将接收到数据发送给应用层进行处理。具体地,只需客户端进程发送数据时,向封装CFmessagePort接口的network engine模块注册回调接口,客户端进程在接收服务端进程处理后的数据后,根据服务端进程发送的消息名称扫描注册的队列,找到对应的回调接口,通过该对应的回调接口将收到数据传输给应用层。
进一步地,将CFMessagePort进行封装后产生的客户端接口可具备为客户端进程提供收发数据失败或超时的错误回调功能,若该客户端进程向该服务端进程发送数据处理请求失败,则该客户端进程调用给定的接口向对应的应用层发送通知,以通知该应用层判断是否需要重发该数据处理请求,具体地,该给定的接口为具备发数据失败或超时的错误回调功能的接口。
305、该CFMessagePort根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程;
将CFMessagePort进行封装后产生的客户端接口可具备为客户端进程提供与服务端进程建立连接的功能,客户端进程只需指定服务端进程的名称,该名称可以为字符串形式,该CFMessagePort便可根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接。
进一步地,将CFMessagePort进行封装后产生的服务端接口可具备为服务端进程提供注册回调功能,即,服务端进程通过CFMessagePort的服务端接口监听客户端进程发送的注册消息,若监听到该注册消息已被注册,则调用注册了该注册消息的客户端进程之前注册的回调接口进行数据处理,并将处理后的数据通过该服务端接口发送给客户端进程。具体地,服务端进程可以通过CFMessagePort的服务端接口,监听客户端进程发送过来的消息,当监听到注册消息时,服务端进程扫描其自身已注册消息的队列,如果有该注册消息已经注册了,则调用注册了该注册消息的进程对应的回调接口来完成数据处理,然后将处理的数据通过服务端接口返回给客户端进程。
306、断开该客户端进程和该服务端进程之间的连接。
将CFMessagePort进行封装后产生的服务端接口可具备为服务端进程提供断开客户端进程和服务端进程连接的功能。在客户端进程接收服务端进程处理后的数据后,服务端进程便断开该客户端进程和该服务端进程之间的连接,待下一次有数据请求时在进行连接并交换数据。这样可避免因长时间连接而占用过多资源。
进一步地,无论对于服务端进程还是客户端进程,CFMessagePort都提供了完整的错误通知信息功能,如服务端进程运行异常,发送、接收数据是否超时,数据传输错误。因此可以通过错误通知信息来对服务端进程和客户端进程提供各种容错操作。
更进一步地,对于服务端进程和客户端进程,CFMessagePort都提供了数据传输加密和解密功能,使得服务端进程和客户端进程在交换数据时可对传输的数据进行加密、解密,提高数据传输安全性。
本发明实施例中,客户端进程在请求服务端进程处理数据之前,先调用CFMessagePort的客户端接口判断服务端进程是否存在并有效运行,提高数据发送的成功率,在客户端进程接收服务端进程处理后的数据后,服务端进程可断开该客户端进程和该服务端进程之间的连接,有进程再次发送数据请求时再进行连接,从而避免因长时间保持连接而占用过多传输资源。CFMessagePort封装后产生的客户端接口可具备为客户端进程提供同步及异步两种方式数据请求处理的功能,使得客户端进程请求的数据处理方式更具灵活性。
下面介绍本发明实施例中的实现进程间数据交换的装置,请参阅图4,本发明实施例中的实现进程间数据交换的装置包括:
封装单元401,用于将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口;
第一建立单元402,用于服务端进程通过封装单元401封装得到的该服务端接口与该CFMessagePort建立服务;
发送单元403,用于客户端进程调用封装单元401封装得到的该客户端接口向该服务端进程发送数据处理请求,该数据处理请求中包含所请求的该服务端进程的名称;
第二建立单元404,用于该CFMessagePort根据发送单元403发送的该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接;
所述发送单元403,还用于将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程。
本发明实施例中实现进程间数据交换的装置中各功能单元实现各自功能的具体过程,请参见前述图1所示实施例的描述,此处不再赘述。
本发明实施例中,封装单元401将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口,第一建立单元402通过该服务端接口与该CFMessagePort建立服务,发送单元403调用该客户端接口向该服务端进程发送数据处理请求,该数据处理请求中包含所请求的该服务端进程的名称,第二建立单元404根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,发送单元403将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程,完成客户端进程与服务端进程之间数据的交换,提高数据交换效率,并且,由于采用上述方式可根据服务端进程的名称在服务端进程和客户端进程间简单、快速地建立连接,不仅适合于进程间一对一连接的“星状”的程序结构,还适合多进程之间交互连接的“网状”的程序结构,对于在“网状”结构中进行数据交换时,则不需要在每个进程内部都建立服务端接口和客户端接口,维护更加的简便,更有效的利用系统资源。
请参阅图5,图5为本发明实施例中的实现进程间数据交换的装置的另一个实施例,与图4所示的实施例不同之处在于,进一步地,本发明实施例中的实现进程间数据交换的装置还可以包括:
断开单元405,用于断开该客户端进程和该服务端进程之间的连接。
进一步地,本发明实施例中的实现进程间数据交换的装置还可以包括:
判断单元406,用于该客户端进程通过该客户端接口判断该服务端进程是否已运行;
发送单元403,还用于若该服务端进程已运行,则调用该客户端接口发送数据处理请求;
发送单元403,还用于该客户端进程通过该客户端接口发送同步数据处理请求或异步数据处理请求;
发送单元403,还用于若该客户端进程向该服务端进程发送数据处理请求失败,则该客户端进程调用给定的接口向对应的应用层发送通知,以通知该应用层判断是否需要重发该数据处理请求。
进一步地,本发明实施例中的实现进程间数据交换的装置还可以包括:
注册单元407,用于在发送数据时,该客户端进程通过该客户端接口注册回调接口。
进一步地,发送单元403,还用于当接收到该服务端进程处理后的数据时,则根据该回调接口将接收到数据发送给应用层进行处理。
进一步地,本发明实施例中的实现进程间数据交换的装置还可以包括:
监听单元408,用于该服务端进程通过该服务端接口监听该客户端进程发送的注册消息;
处理单元409,用于若该注册消息已被注册,则调用注册该注册消息的客户端进程注册的回调接口进行数据处理。
进一步地,发送单元403,还用于将处理后的数据通过该服务端接口发送给客户端进程。
本发明实施例中实现进程间数据交换的装置中各功能单元实现各自功能的具体过程,请参见前述图1及图3所示实施例的描述,此处不再赘述。
本发明实施例中,封装单元401将CFMessagePort进行封装,使得该CFMessagePort同时为进程提供服务端接口和客户端接口,第一建立单元302通过该服务端接口与该CFMessagePort建立服务,发送单元403调用该客户端接口向该服务端进程发送数据处理请求,该数据处理请求中包含所请求的该服务端进程的名称,第二建立单元404根据该服务端进程的名称,在该客户端进程和该服务端进程之间建立连接,发送单元403将该客户端进程发送的请求处理的数据,转发给该服务端进程进行处理,并将处理后的数据转发给该客户端进程,完成客户端进程与服务端进程之间数据的交换,提高数据交换效率,并且,由于采用上述方式可根据服务端进程的名称在服务端进程和客户端进程间简单、快速地建立连接,不仅适合于进程间一对一连接的“星状”的程序结构,还适合多进程之间交互连接的“网状”的程序结构,对于在“网状”结构中进行数据交换时,则不需要在每个进程内部都建立服务端接口和客户端接口,维护更加的简便,更有效的利用系统资源。更进一步地,判断单元406判断该服务端进程是否已运行,提高数据发送的成功率,在客户端进程接收服务端进程处理后的数据后,断开单元405可断开该客户端进程和该服务端进程之间的连接,有进程再次发送数据请求时再进行连接,从而避免因长时间保持连接而占用过多传输资源。发送单元403发送同步数据处理请求或异步数据处理请求,CFMessagePort封装后产生的客户端接口可具备为客户端进程提供同步及异步两种方式数据请求处理的功能,使得客户端进程请求的数据处理方式更具灵活性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (12)

1.一种实现进程间数据交换的方法,其特征在于,包括:
将CFMessagePort进行封装,使得所述CFMessagePort同时为进程提供服务端接口和客户端接口,所述客户端接口具备判断服务端进程是否有效的功能;
服务端进程通过所述服务端接口与所述CFMessagePort建立服务;
客户端进程通过所述客户端接口判断所述服务端进程是否存在并有效运行;若所述服务端进程已运行,则调用所述客户端接口向所述服务端进程发送数据处理请求,所述数据处理请求中包含所请求的所述服务端进程的名称;若所述服务端进程不存在或无效,则结束进程;
所述CFMessagePort根据所述服务端进程的名称,在所述客户端进程和所述服务端进程之间建立连接,将所述客户端进程发送的请求处理的数据,转发给所述服务端进程进行处理,并将处理后的数据转发给所述客户端进程。
2.根据权利要求1所述的方法,其特征在于,所述将处理后的数据转发给所述客户端进程之后包括:
断开所述客户端进程和所述服务端进程之间的连接。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述客户端进程通过所述客户端接口发送同步数据处理请求或异步数据处理请求。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述客户端进程向所述服务端进程发送数据处理请求失败,则所述客户端进程调用给定的接口向对应的应用层发送通知,以通知所述应用层判断是否需要重发所述数据处理请求。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
在发送数据时,所述客户端进程通过所述客户端接口注册回调接口;
当接收到所述服务端进程处理后的数据时,则根据所述回调接口将接收到数据发送给应用层进行处理。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述服务端进程通过所述服务端接口监听所述客户端进程发送的注册消息;
若所述注册消息已被注册,则调用注册所述注册消息的客户端进程注册的回调接口进行数据处理;
将处理后的数据通过所述服务端接口发送给客户端进程。
7.一种实现进程间数据交换的装置,其特征在于,包括:
封装单元,用于将CFMessagePort进行封装,使得所述CFMessagePort同时为进程提供服务端接口和客户端接口,所述客户端接口具备判断服务端进程是否有效的功能;
第一建立单元,用于服务端进程通过所述封装单元封装得到的所述服务端接口与所述CFMessagePort建立服务;
判断单元,用于所述客户端进程通过所述客户端接口判断所述服务端进程是否存在并有效运行;若所述服务端进程不存在或无效,则结束进程;发送单元,用于若所述服务端进程已运行,则客户端进程调用所述封装单元封装得到的所述客户端接口向所述服务端进程发送数据处理请求,所述数据处理请求中包含所请求的所述服务端进程的名称;
第二建立单元,用于所述CFMessagePort根据所述发送单元发送的所述服务端进程的名称,在所述客户端进程和所述服务端进程之间建立连接;
所述发送单元,还用于将所述客户端进程发送的请求处理的数据,转发给所述服务端进程进行处理,并将处理后的数据转发给所述客户端进程。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
断开单元,用于断开所述客户端进程和所述服务端进程之间的连接。
9.根据权利要求7所述的装置,其特征在于,
所述发送单元,还用于所述客户端进程通过所述客户端接口发送同步数据处理请求或异步数据处理请求。
10.根据权利要求7所述的装置,其特征在于,
所述发送单元,还用于若所述客户端进程向所述服务端进程发送数据处理请求失败,则所述客户端进程调用给定的接口向对应的应用层发送通知,以通知所述应用层判断是否需要重发所述数据处理请求。
11.根据权利要求7至10任一项所述的装置,其特征在于,
所述装置还包括:
注册单元,用于在发送数据时,所述客户端进程通过所述客户端接口注册回调接口;
所述发送单元,还用于当接收到所述服务端进程处理后的数据时,则根据所述回调接口将接收到数据发送给应用层进行处理。
12.根据权利要求11所述的装置,其特征在于,
所述装置还包括:
监听单元,用于所述服务端进程通过所述服务端接口监听所述客户端进程发送的注册消息;
处理单元,用于若所述注册消息已被注册,则调用注册所述注册消息的客户端进程注册的回调接口进行数据处理;
所述发送单元,还用于将处理后的数据通过所述服务端接口发送给客户端进程。
CN201310549591.3A 2013-11-07 2013-11-07 一种实现进程间数据交换的方法及装置 Active CN104636210B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310549591.3A CN104636210B (zh) 2013-11-07 2013-11-07 一种实现进程间数据交换的方法及装置
PCT/CN2014/090214 WO2015067162A1 (en) 2013-11-07 2014-11-04 Method and device for exchanging data between processes
US15/149,259 US9965341B2 (en) 2013-11-07 2016-05-09 Method and device for exchanging data between processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310549591.3A CN104636210B (zh) 2013-11-07 2013-11-07 一种实现进程间数据交换的方法及装置

Publications (2)

Publication Number Publication Date
CN104636210A CN104636210A (zh) 2015-05-20
CN104636210B true CN104636210B (zh) 2018-11-09

Family

ID=53040902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310549591.3A Active CN104636210B (zh) 2013-11-07 2013-11-07 一种实现进程间数据交换的方法及装置

Country Status (3)

Country Link
US (1) US9965341B2 (zh)
CN (1) CN104636210B (zh)
WO (1) WO2015067162A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479958A (zh) * 2017-08-16 2017-12-15 郑州云海信息技术有限公司 一种基于多核系统的进程调度方法及装置
CN110716758A (zh) * 2018-06-26 2020-01-21 阿里巴巴集团控股有限公司 程序运行方法、装置、设备以及存储介质
CN109508241B (zh) * 2018-11-20 2021-04-20 中国电子科技集团公司第五十四研究所 一种进程间数据交换方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590334A (en) * 1994-03-30 1996-12-31 Apple Computer, Inc Object oriented message passing system and method
US6157959A (en) * 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
CN102591726A (zh) * 2011-12-31 2012-07-18 青岛海信宽带多媒体技术有限公司 一种多进程通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
US7406496B2 (en) * 2002-07-24 2008-07-29 Sun Microsystems, Inc. System and method for processing callback requests, which include a client port and address, included in web-based procedure calls
US20040044909A1 (en) * 2002-09-04 2004-03-04 Mirza Absar Ahmed Method and system for accessing an object behind a firewall
US8032900B2 (en) * 2006-08-02 2011-10-04 Microsoft Corporation Conducting client-server inter-process communication
CN101087314B (zh) * 2007-05-15 2010-11-10 华为技术有限公司 一种应用程序跨进程使用套接字服务的系统及方法
CN102103526A (zh) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 服务端和客户端间通过服务管理进行进程间通信的方法及系统
US9411637B2 (en) * 2012-06-08 2016-08-09 Apple Inc. Adaptive process importance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590334A (en) * 1994-03-30 1996-12-31 Apple Computer, Inc Object oriented message passing system and method
US6157959A (en) * 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
CN102591726A (zh) * 2011-12-31 2012-07-18 青岛海信宽带多媒体技术有限公司 一种多进程通信方法

Also Published As

Publication number Publication date
US20160253225A1 (en) 2016-09-01
CN104636210A (zh) 2015-05-20
US9965341B2 (en) 2018-05-08
WO2015067162A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
CN105577501B (zh) 专网客户终端设备的下挂设备入网通信实现方法及装置
CN108234523B (zh) 一种应用于电视台的多层次内外网数据交互系统
KR20080077235A (ko) 무선 인터페이스를 통해 tcp 성능을 개선시키기 위한이중 프록시 접근 방식
CN107370722B (zh) 网络交互方法、无线融合中继网关及系统
CN104636210B (zh) 一种实现进程间数据交换的方法及装置
WO2015180570A1 (zh) 数据通道建立方法和通信设备
US5349583A (en) Multi-channel token ring
CN106331198A (zh) Nat穿透方法及装置
US9426021B2 (en) Communication failover in a distributed network
CN103795518A (zh) 一种设备间端口模式同步方法、设备及系统
CN103379182A (zh) 数据传输方法和客户端
CN101202655B (zh) 用于互为备份软交换设备的心跳检测方法和装置
CN111787078B (zh) 一种基于电梯物联网的信令控制系统及通讯方法
CN106789099A (zh) 基于pcie的高速隔离网络方法及终端
CN105897665B (zh) 一种卫星网络环境下实现tcp传输的方法及相应的网关
CN105991352B (zh) 一种安全联盟备份方法以及装置
CN102238164B (zh) 面向ip电信网的多协议报文适配方法
CN106254396B (zh) 私有协议信息传输系统与方法
US8566471B1 (en) Method of providing network link bonding and management
CN110737505B (zh) 一种采用虚拟通道的虚拟存储访问方法
CN111090534B (zh) 一种嵌入式设备的并发式远程调用系统
CN107277185A (zh) 网络通讯系统及网络穿透方法
CN106302690B (zh) 一种可支持军用通信业务的多业务融合服务方法
CN109257444A (zh) 一种负载分担方法、装置及系统
US8165137B2 (en) Fast database migration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant