CN115460267B - 通讯方法和系统、存储介质 - Google Patents

通讯方法和系统、存储介质 Download PDF

Info

Publication number
CN115460267B
CN115460267B CN202210984308.9A CN202210984308A CN115460267B CN 115460267 B CN115460267 B CN 115460267B CN 202210984308 A CN202210984308 A CN 202210984308A CN 115460267 B CN115460267 B CN 115460267B
Authority
CN
China
Prior art keywords
client
server
pipeline
agent
message
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
CN202210984308.9A
Other languages
English (en)
Other versions
CN115460267A (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.)
Zhuhai Auto Vision Technology Co ltd
Original Assignee
Zhuhai Auto Vision Technology 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 Zhuhai Auto Vision Technology Co ltd filed Critical Zhuhai Auto Vision Technology Co ltd
Priority to CN202210984308.9A priority Critical patent/CN115460267B/zh
Publication of CN115460267A publication Critical patent/CN115460267A/zh
Application granted granted Critical
Publication of CN115460267B publication Critical patent/CN115460267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Abstract

本发明公开了一种通讯方法和系统、存储介质,涉及通讯技术领域。通讯方法包括以下步骤:客户端与服务器端之间通过客户端代理和服务器代理建立连接;客户端代理向服务器代理发送创建管道的消息;服务器代理根据创建管道的消息,创建指定数量的管道,并将管道放入管道池,并返回第一个管道号给客户端代理;当客户端的用户程序向客户端代理申请管道时,客户端代理返回一个空闲管道给客户端的用户程序;客户端的用户程序通过空闲管道向服务器端调用服务。根据本发明实施例的通讯方法,客户端代理和服务器代理之间能够建立多条管道,双方的多个事务可以独立使用属于自己的管道,该技术提高了编程的便利性,特别适用于多线程的使用场景。

Description

通讯方法和系统、存储介质
技术领域
本发明涉及通讯技术领域,尤其是涉及一种通讯方法和系统、存储介质。
背景技术
终端与主机分离的系统结构广泛存在,例如工业设备,特别是复杂大型的工业设备,它们的操作终端(如图形化界面、触摸屏等)与主机(工业设备主体)往往是分离的,即操作终端是独立的计算设备(如工控一体机,平板电脑等),而主机是处理能力更强的计算机。对于这种系统结构,终端与主机之间的高速高效通讯技术是影响软件开发效率和系统用户体验的关键技术。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出了一种高速高效的通讯方法和系统、存储介质。
一方面,根据本发明实施例的通讯方法,包括以下步骤:
客户端与服务器端之间通过客户端代理和服务器代理建立连接;
所述客户端代理向所述服务器代理发送创建管道的消息;
所述服务器代理根据所述创建管道的消息,创建指定数量的管道,并将所述管道放入管道池,并返回第一个管道号给所述客户端代理;
当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理返回一个空闲管道给所述客户端的用户程序;
所述客户端的用户程序通过所述空闲管道向所述服务器端调用服务。
根据本发明的一些实施例,所述客户端与服务器端之间通过客户端代理和服务器代理建立连接的步骤之前,还包括以下步骤:
初始化所述服务器代理,使所述服务器端的用户程序指定内存对齐字节数、指定大端或小端模式、以及指定socket监听端口号。
根据本发明的一些实施例,所述客户端与服务器端之间通过客户端代理和服务器代理建立连接的步骤,具体包括:
所述客户端代理发送连接服务器的消息给所述服务器代理;所述连接服务器的消息包括所述客户端的用户程序指定的服务器端的IP地址、端口号、以及需要创建的管道的数量;
根据所述连接服务器的消息,所述服务器端与所述客户端建立连接。
根据本发明的一些实施例,所述根据所述连接服务器的消息,所述服务器端与所述客户端建立连接的步骤,具体包括:
当所述服务器端的socket监听到所述端口号时,所述服务器端获取所述连接服务器的消息;
所述服务器端检查所述客户端的用户程序的内存对齐字节数,并在检查无误后,返回确认连接的消息给所述客户端;所述确认连接的消息指定了大端或小端模式;
根据所述确认连接的消息,所述客户端与所述服务器端建立连接。
根据本发明的一些实施例,所述当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理返回一个空闲管道给所述客户端的用户程序的步骤,具体包括:
所述客户端代理设置有两个管道集合,分别用于容纳空闲管道和占用管道;
当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理从用于容纳空闲管道的所述管道集合中,取出一个空闲管道,将所述空闲管道的管道号返回给所述客户端的用户程序,并将所述空闲管道放入用于容纳占用管道的所述管道集合中。
根据本发明的一些实施例,所述客户端的用户程序通过所述空闲管道向所述服务器端调用服务的步骤,具体包括:
所述客户端的用户程序在所述空闲管道上向所述服务器端发送调用服务的消息;
当所述调用服务的消息发送成功时,所述客户端的用户程序在所述空闲管道上向所述服务器端发送流式参数,并接收所述服务器端返回的流式返回值。
根据本发明的一些实施例,还包括以下步骤:
当所述客户端的用户程序调用服务完成时,所述客户端代理将所述空闲管道从用于容纳占用管道的所述管道集合中取出,并放入用于容纳空闲管道的所述管道集合中。
根据本发明的一些实施例,还包括以下步骤:
所述客户端代理发送销毁管道的消息给所述服务器端;
根据所述销毁管道的消息,所述服务器端将所述管道销毁,并返回确认销毁的消息给所述客户端代理;
根据所述确认销毁的消息,所述客户端代理断开与所述服务器端的连接。
根据本发明的一些实施例,所述客户端与所述服务器端之间通过UDP协议进行通讯。
另一方面,根据本发明实施例的通讯系统,包括:
客户端,设置有客户端代理;
服务器端,设置有服务器代理;
所述客户端与所述服务器端之间通过所述客户端代理和所述服务器代理建立连接;所述客户端代理和所述服务器代理之间能够建立管道,以使所述客户端的用户程序通过所述管道向所述服务器端调用服务。
另一方面,根据本发明实施例的存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的通讯方法。
根据本发明实施例的通讯方法和系统、存储介质,至少具有如下有益效果:客户端与服务器端之间通过客户端代理和服务器代理进行通讯,而客户端代理和服务器代理之间能够建立多条管道,双方的多个事务可以独立使用属于自己的管道,该技术提高了编程的便利性,特别适用于多线程的使用场景;而且,通过设置管道池用于存放管,进一步降低用户请求管道的响应时间。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的通讯系统的结构示意图;
图2为本发明实施例的通讯系统的通讯协议;
图3为本发明实施例的通讯方法的步骤流程图;
图4为本发明实施例的客户端代理申请创建管道的流程示意图;
图5为本发明实施例的服务器端创建管道和销毁管道的流程示意图;
图6为本发明实施例的客户端调用服务的流程示意图;
图7为本发明实施例的服务器端响应客户端调用服务的流程示意图;
图8为本发明实施例的客户端代理申请销毁管道的流程示意图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
终端与主机分离的系统结构广泛存在,例如工业设备,特别是复杂大型的工业设备,它们的操作终端(如图形化界面、触摸屏等)与主机(工业设备主体)往往是分离的,即操作终端是独立的计算设备(如工控一体机,平板电脑等),而主机是处理能力更强的计算机。对于这种系统结构,终端与主机之间的高速高效通讯技术是影响软件开发效率和系统用户体验的关键技术。
目前,终端与主机之间进行通讯采用的方案有以下三种:
(1)基于简单变量地址空间的方案。该方案将需要传输的变量统一编址,当双方通讯时,只要指定变量的地址码和变量类型即可。
(2)基于数据包的方案。该方案将需要一次性读/写的数据打包为一个自定义类型,双方事先约定好每个包类型的类型码,传输时,将数据包与其类型码一并传输。
(3)基于远程过程调用(Remote Procedure Call,RPC)的方案。RPC是一种思想,不是具体方案,该思想是通过软件技术,在终端与主机之间建立一个虚拟层,使得终端程序调用主机程序中的某个函数与调用本地函数基本一致。
但是,上述三种方案均存在一定的缺点:
对于第(1)种方案,该方案只能应用于简单的通讯场合,传输内容的数据量极小,甚至只有1个变量,类型极少,只有基础类型(如字节、整数、浮点数),无法胜任数据量大(例如一张图片)、类型繁多(如大量的用户自定义类型)的场合,这种方案目前主要应用于显示终端与PLC之间的通讯。
对于第(2)种方案,该方案只能应用于数据类型少的场合;且类型码的编制工作只是依靠人为约定,无法自动化,容易出错;新增包类型不方便。
对于第(3)种方案,其规模庞大,不适合操作终端这种应用场合;需要用到中间语言,再使用特制编译器将中间语言编制的文件编译为用户的开发语言,使用复杂;未提供连接池;通讯建立在HTTP2.0基础上,不够简单高效;需要将数据序列化,对方接收后再反序列化,通讯效率比直接传输内存镜像低。
针对上述几种方案的缺点,本发明提供一种基于RPC思想的高效高速传输方案(命名为Wcall),该方案具备以下优点:①特别设计的通讯协议(Wcall),该协议建立在UDP协议(User Datagram Protocol,用户数据报协议)的基础上,一般应用都建立在TCP协议(Transmission Control Protocol,传输控制协议)的基础上,由于TCP连接有200ms以上的连接时间,而UDP无连接耗时,响应更快、传输效率更高,更适合独立终端这种极短矩离、高速高可靠局域网通讯场合。②采用直接内存镜像传输。目前的RPC方案多数采用将内存数据转为XML文本格式或JSON文本格式,这大大增加了数据量,也增加了转换时间,大大降低了传输速度。而本发明直接传输数据在内存中的内容,使数据量最小,同时省去数据转时间,传输速度更快。③提出通讯管道技术,该技术使通讯双方可以建立多条管道,双方的多个事务可以独立使用属于自己的管道,该技术提高了编程的便利性,特别适用于多线程的使用场景。④提出管道池技术,该技术进一步降低用户请求管道的响应时间。⑤支持流式参数和流式返回值,对于涉及流式数据传输的应用场合,这个特性尤为重要,例如传输连续文本、连续调节参数、获取音频或视频流等。
如图1所示,本发明提出了一种通讯系统,该通讯系统包括客户端和服务器端,客户端上设置有用户程序(user-client)和客户端代理(Wcall-client),服务器端上设置有用户程序(user-server)和服务器代理(Wcall-server);如图2所示,客户端与服务器端之间的通讯建立在UDP协议的基础上,而客户端的用户程序与客户端代理之间的通讯建立在Wcall协议上,服务器端的用户程序与服务器代理之间的通讯建立在Wcall协议上。客户端与服务器端之间通过客户端代理和服务器代理建立连接;客户端代理和服务器代理之间能够建立管道,以使客户端的用户程序通过管道向服务器端调用服务。
基于上述的通讯系统,本发明提出了一种通讯方法,如图3所示,该方法包括以下步骤:
步骤S100:客户端与服务器端之间通过客户端代理和服务器代理建立连接;
步骤S200:客户端代理向服务器代理发送创建管道的消息;
步骤S300:服务器代理根据所述创建管道的消息,创建指定数量的管道,并将所述管道放入管道池,并返回第一个管道号给所述客户端代理;
步骤S400:当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理返回一个空闲管道给所述客户端的用户程序;
步骤S500:客户端的用户程序通过所述空闲管道向所述服务器端调用服务。
进一步地,在上述的步骤S100之前,还包括以下步骤:
初始化服务器代理,使服务器端的用户程序指定内存对齐字节数、指定大端或小端模式、以及指定socket监听端口号。
具体地,在实施该通讯方法时,首先对服务器代理进行初始化,此时服务器端的用户程序需要指定内存对齐字节数、指定大端或小端模式、以及指定socket监听端口号。其中,内存对齐字节数为用户程序的静态属性,即程序编译时由开发人员设定,程序生成后会无法修改,因此服务器端和客户端的用户程序需要事先约定,并不能在运行时修改。
对服务器代理初始化完成后,实行上述的步骤S100,上述的步骤S100,具体包括以下两个步骤:
客户端代理发送连接服务器的消息给服务器代理;所述连接服务器的消息包括客户端的用户程序指定的服务器端的IP地址、端口号、以及需要创建的管道的数量;
根据所述连接服务器的消息,服务器端与客户端建立连接。
而上述的“根据所述连接服务器的消息,服务器端与客户端建立连接”这一步骤,又包括以下三个步骤:
当服务器端的socket监听到所述端口号时,所述服务器端获取所述连接服务器的消息;
所述服务器端检查所述客户端的用户程序的内存对齐字节数,并在检查无误后,返回确认连接的消息给所述客户端;所述确认连接的消息指定了大端或小端模式;
根据所述确认连接的消息,所述客户端与所述服务器端建立连接。
具体地,客户端代理向服务器端发送“连接服务器”的消息,该消息包含了客户端的用户程序所指定的服务器端的IP地址、端口号、以及需要创建的管道的数量。其中,客户端代理根据客户端的用户程序指定的IP地址,找到对应的服务器端;而服务器端的socket监听到对应的端口号时,便会接收该消息,在接收到该消息后,会首先检查客户端的用户程序的内存对齐字节数,如果双方不一致,则连接失败;如果双方一致,则服务器端与客户端建立连接,且服务器端会回复确认连接的消息给客户端,该消息指定了大端或小端模式。其中,客户端代理发送“连接服务器”的消息、以及服务器端回复的消息的格式如表1所示:
客户端消息 服务器端消息
“connect wcall-server<ALIGN_BYTES>” “accept wcall-client<SERVER_ENDIAN>”
表1
其中,<ALIGN_BYTES>表示客户端的用户程序的内存对齐字节数,例如,4字节对齐时,此值为字符串“4”;<SERVER_ENDIAN>为服务器端的用户程序的大端或小端模式,如果为大端模式,此值为字符串“big-endian”,如果为小端模式,此值为字符串“little-endian”。
在完成服务器端和客户端之间的连接后,如图4所示,客户端代理向服务器端发送“创建管道”的消息,当成功创建管道时,客户端代理会返回成功给客户端的用户程序;如果没有成功创建管道,客户端代理会返回失败给客户端的用户程序。
如图5所示,当服务器端的socket监听到对应的端口号时,接收客户端代理要求“创建管道”的消息,并创建指定数量的管道,将所有的管道放入管道池,并返回第一个管道号给客户端代理。其中,管道号为连续整数,以服务器端监听的端口号+1为起始值。例如,假设创建10个管道,服务器端监听的端口号为50000,则第一个管道号为50001,第二个为50002,第三个为50003,依次类推。
客户端代理对于管道的管理方法是:设置两个管道集合,其中一个管道集合用于容纳空闲管道,另一个管道集合用于容纳占用管道。当客户端的用户程序向客户端代理申请管道时,客户端代理从用于容纳空闲管道的管道集合中,取出一个空闲管道,将该空闲管道的管道号返回给客户端的用户程序,并将该空闲管道放入用于容纳占用管道的管道集合中。
申请到管道后,客户端的用户程序便可以在该空闲管道上向服务器端调用服务,调用服务的流程如图6所示:首先,客户端的用户程序在空闲管道上向服务器端发送调用服务的消息;当所述调用服务的消息发送成功时,客户端的用户程序在所述空闲管道上向服务器端发送流式参数,并接收服务器端返回的流式返回值。而对于服务器端而言,当客户端的用户程序调用服务时,服务器端的响应流程如图7所示:当服务器端成功接收调用服务的请求时,服务器端会接收客户端发送过来的流式参数,并根据流式参数调用服务器端的用户程序,获得对应的流式返回值,并将该流式返回值返回给客户端。其中,客户端代理的消息“发送成功”的条件是,预设时长内收到服务器端回复的消息;服务器端“接收成功”的条件是,预设时长内收到客户端请求的下一项,并收到流结束(CALL_AS_END或RETURN_RS_END)消息。
当客户端的用户程序调用服务完成时,客户端代理会将该空闲管道从用于容纳占用管道的管道集合中取出,并放入用于容纳空闲管道的管道集合中。
如图5和图8所示,当客户端要与服务器端断开连接时,客户端代理发送销毁管道的消息给服务器代理;根据所述销毁管道的消息,服务器代理将管道销毁,并返回确认销毁的消息给客户端代理;根据所述确认销毁的消息,客户端代理断开与服务器端的连接。
客户端与服务器端发送消息的包格式如表2所示:
<LENGTH><MSG>
表2
其中,MSG的格式如表3所示:
Figure BDA0003800209240000091
表3
各符号的说明如表4所示:
Figure BDA0003800209240000101
表4
在表2~4中,无<>包围符号的表示常量,自行定义,如CREATE_PIPE、GOTIT等,有<>包围的符号表示此处是占位符,用相应内容填充,例如<SERVICE_INST>表示用”服务实例”变量的值填充此处;服务是一种服务器端提供给客户端的一种功能,可以理解为编程语言中的函数;如果服务器无可用端口,PORT值为0。
根据本发明实施例的通讯方法,具备以下的优点:①特别设计的通讯协议(Wcall),该协议建立在UDP协议的基础上,一般应用都建立在TCP协议的基础上,由于TCP连接有200ms以上的连接时间,而UDP无连接耗时,响应更快、传输效率更高,更适合独立终端这种极短矩离、高速高可靠局域网通讯场合。②采用直接内存镜像传输。目前的RPC方案多数采用将内存数据转为XML文本格式或JSON文本格式,这大大增加了数据量,也增加了转换时间,大大降低了传输速度。而本发明直接传输数据在内存中的内容,使数据量最小,同时省去数据转时间,传输速度更快。③提出通讯管道技术,该技术使通讯双方可以建立多条管道,双方的多个事务可以独立使用属于自己的管道,该技术提高了编程的便利性,特别适用于多线程的使用场景。④提出管道池技术,该技术进一步降低用户请求管道的响应时间。⑤支持流式参数和流式返回值,对于涉及流式数据传输的应用场合,这个特性尤为重要,例如传输连续文本、连续调节参数、获取音频或视频流等。
另一方面,在本发明的一些实施例中,还提出了一种存储介质,该存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述的通讯方法。
尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种示例性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的示例性具体实施和架构的许多其它修改也处于本公开的范围内。
上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。
因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。
本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。
软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施方案中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。
软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (10)

1.一种通讯方法,其特征在于,包括以下步骤:
客户端与服务器端之间通过客户端代理和服务器代理建立连接;
所述客户端代理向所述服务器代理发送创建管道的消息;
所述服务器代理根据所述创建管道的消息,创建指定数量的管道,并将所述管道放入管道池,并返回第一个管道号给所述客户端代理;
当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理返回一个空闲管道给所述客户端的用户程序;
所述客户端的用户程序通过所述空闲管道向所述服务器端调用服务。
2.根据权利要求1所述的通讯方法,其特征在于,所述客户端与服务器端之间通过客户端代理和服务器代理建立连接的步骤之前,还包括以下步骤:
初始化所述服务器代理,使所述服务器端的用户程序指定内存对齐字节数、指定大端或小端模式、以及指定socket监听端口号。
3.根据权利要求1所述的通讯方法,其特征在于,所述客户端与服务器端之间通过客户端代理和服务器代理建立连接的步骤,具体包括:
所述客户端代理发送连接服务器的消息给所述服务器代理;所述连接服务器的消息包括所述客户端的用户程序指定的服务器端的IP地址、端口号、以及需要创建的管道的数量;
根据所述连接服务器的消息,所述服务器端与所述客户端建立连接。
4.根据权利要求3所述的通讯方法,其特征在于,所述根据所述连接服务器的消息,所述服务器端与所述客户端建立连接的步骤,具体包括:
当所述服务器端的socket监听到所述端口号时,所述服务器端获取所述连接服务器的消息;
所述服务器端检查所述客户端的用户程序的内存对齐字节数,并在检查无误后,返回确认连接的消息给所述客户端;所述确认连接的消息指定了大端或小端模式;
根据所述确认连接的消息,所述客户端与所述服务器端建立连接。
5.根据权利要求1所述的通讯方法,其特征在于,所述当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理返回一个空闲管道给所述客户端的用户程序的步骤,具体包括:
所述客户端代理设置有两个管道集合,分别用于容纳空闲管道和占用管道;
当所述客户端的用户程序向所述客户端代理申请管道时,所述客户端代理从用于容纳空闲管道的所述管道集合中,取出一个空闲管道,将所述空闲管道的管道号返回给所述客户端的用户程序,并将所述空闲管道放入用于容纳占用管道的所述管道集合中。
6.根据权利要求1或5所述的通讯方法,其特征在于,所述客户端的用户程序通过所述空闲管道向所述服务器端调用服务的步骤,具体包括:
所述客户端的用户程序在所述空闲管道上向所述服务器端发送调用服务的消息;
当所述调用服务的消息发送成功时,所述客户端的用户程序在所述空闲管道上向所述服务器端发送流式参数,并接收所述服务器端返回的流式返回值。
7.根据权利要求5所述的通讯方法,其特征在于,还包括以下步骤:
当所述客户端的用户程序调用服务完成时,所述客户端代理将所述空闲管道从用于容纳占用管道的所述管道集合中取出,并放入用于容纳空闲管道的所述管道集合中。
8.根据权利要求1所述的通讯方法,其特征在于,还包括以下步骤:
所述客户端代理发送销毁管道的消息给所述服务器代理;
根据所述销毁管道的消息,所述服务器代理将所述管道销毁,并返回确认销毁的消息给所述客户端代理;
根据所述确认销毁的消息,所述客户端代理断开与所述服务器端的连接。
9.根据权利要求1所述的通讯方法,其特征在于,所述客户端与所述服务器端之间通过UDP协议进行通讯。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-9中任一项所述的通讯方法。
CN202210984308.9A 2022-08-16 2022-08-16 通讯方法和系统、存储介质 Active CN115460267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210984308.9A CN115460267B (zh) 2022-08-16 2022-08-16 通讯方法和系统、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210984308.9A CN115460267B (zh) 2022-08-16 2022-08-16 通讯方法和系统、存储介质

Publications (2)

Publication Number Publication Date
CN115460267A CN115460267A (zh) 2022-12-09
CN115460267B true CN115460267B (zh) 2023-06-02

Family

ID=84299624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210984308.9A Active CN115460267B (zh) 2022-08-16 2022-08-16 通讯方法和系统、存储介质

Country Status (1)

Country Link
CN (1) CN115460267B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833578A (zh) * 2018-06-30 2018-11-16 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备
US10645172B1 (en) * 2017-03-30 2020-05-05 Amazon Technologies, Inc. Socket tunneling connections in a service provider environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702627B (zh) * 2015-04-01 2017-12-26 南京天溯自动化控制系统有限公司 一种基于报文分类的同步并发通信方法及系统
CN104836863B (zh) * 2015-04-08 2018-06-05 杭州威威网络科技有限公司 实现tcp反向端口映射的系统和方法
US10298627B2 (en) * 2016-02-01 2019-05-21 Oracle International Corporation Concentration of independent tunneled encapsulated media
US11381610B2 (en) * 2019-05-20 2022-07-05 Citrix Systems, Inc. Systems and methods for establishing a channel between multiple devices
CN113518085B (zh) * 2019-07-05 2022-08-02 腾讯科技(深圳)有限公司 一种基于多通道的数据传输方法以及相关装置
CN114020395B (zh) * 2021-11-17 2023-06-23 湖南麒麟信安科技股份有限公司 一种虚拟桌面网络加速的方法、装置、终端及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645172B1 (en) * 2017-03-30 2020-05-05 Amazon Technologies, Inc. Socket tunneling connections in a service provider environment
CN108833578A (zh) * 2018-06-30 2018-11-16 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备

Also Published As

Publication number Publication date
CN115460267A (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
US6832380B1 (en) Client-server application partitioning with metering technique for distributed computing
US7305681B2 (en) Method and apparatus for providing multi-client support in a sip-enabled terminal
US20030009539A1 (en) Distributed object middleware connection method
EP2854376A1 (en) Transmission method, device and system for media stream
KR100772175B1 (ko) 네트워크 로봇 시스템 및 네트워크 로봇 시스템에서의 통신방법
TW202038581A (zh) 管理用戶端、設備監控系統及方法
EP1421741B1 (en) Network access apparatus and method for a mobile communication device
US20020046304A1 (en) Dynamic class loading
CN115460267B (zh) 通讯方法和系统、存储介质
CN113419712A (zh) 跨平台的应用生成方法、跨平台应用调用方法、开发装置
WO2020177731A1 (zh) 一种寄宿应用间的即时通讯方法
CN111756844A (zh) 一种多语言消息代理方法及装置
US20200314040A1 (en) Technology for communication between different instant messaging protocols and sip protocol
KR100418200B1 (ko) 무선 어플리케이션 프로토콜 기반의 무선 인터넷 서비스를위한 게이트웨이/서버 통합 시스템
US7568194B2 (en) Method and system for availability checking on distributed objects
CN110691002B (zh) 一种中断检测方法及装置
CN113722115A (zh) 调用接口的方法、装置、设备和计算机可读介质
CN117076160B (zh) 组件调用方法、装置、设备和存储介质
CN114679435B (zh) 会话管理系统、方法、计算机设备及存储介质
CN112422403A (zh) 一种基于即时通讯快速集成网络同步电子白板的实现方法
US7870275B1 (en) Communication scheme-independent infrastructure
CN117519728A (zh) 容器镜像部署方法、系统、装置、设备及存储介质
Douglas et al. A protocol language approach to generating client-server software
CN116820626A (zh) 动态调用原生js的方法及相关设备
CN116633906A (zh) 基于WebRTC的通信方法、通信装置、电子设备及介质

Legal Events

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