CN114979305A - 一种通信方法、装置、设备、存储介质及程序产品 - Google Patents
一种通信方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114979305A CN114979305A CN202210770694.1A CN202210770694A CN114979305A CN 114979305 A CN114979305 A CN 114979305A CN 202210770694 A CN202210770694 A CN 202210770694A CN 114979305 A CN114979305 A CN 114979305A
- Authority
- CN
- China
- Prior art keywords
- socket
- data
- pair
- linked list
- request
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 77
- 238000004891 communication Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005540 biological transmission Effects 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供一种通信方法、装置、设备、存储介质及程序产品,方法包括:基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,数据发送请求包括数据包;基于第一套接字对中的第二套接字读取第一套接字的数据发送请求,并将数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,第二套接字和第三套接字设置于同一链表中以进行数据传输;基于第二套接字对中的第三套接字读取第四套接字的数据发送请求,将数据包发送至第二设备。根据本公开,能够实现具体不同通信机制的设备之间的直接通信。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种通信方法、装置、设备、存储介质及程序产品。
背景技术
物联网能够通过各类可能的网络接入,实现物与物、物与人的泛在连接。目前,基于物联网实现相互通信的设备都需要建立相同的通信机制。然而,实际应用中,接入网络的设备可能属于不同的制造商,不同的制造商所采用的数据通信机制通常不同,导致接入同一网络的设备之间并不是都能直接相互通信,限制了物联网中设备的应用。
发明内容
有鉴于此,本公开的目的在于提出一种通信方法、装置、设备、存储介质及程序产品,以解决同一网络中具有不同通信机制的设备之间无法直接通信的技术问题。
基于上述目的,本公开第一方面,提供了一种通信方法,包括:
基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包;
基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输;
基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
本公开第二方面,提供了一种通信装置,包括:
设备影子模块,用于基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包;
套接字管理模块,用于基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输;
所述设备影子模块还用于基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
本公开第三方面,提供了一种电子设备,其特征在于,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面或第二方面所述的方法的指令。
本公开第四方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面或第二方面所述的方法。
本公开第五方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行第一方面所述的方法。
从上面所述可以看出,本公开提供的通信方法、装置、设备、存储介质及程序产品,通过对接入网络的每个设备设置对应的套接字对,并将每个套接字对中的一个套接字设置在同一链表中以实现不同套接字对之间的数据传输,从而能够实现具有不同通信机制的设备之间的直接通信。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例的通信架构的示意图。
图2为本公开实施例的通信方法的示意流程图。
图3为本公开实施例的通信方法的示例性示意图。
图4为本公开实施例的通信装置的示意图。
图5为本公开实施例的电子设备的示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
随着物联网(The Internet of Things,简称IOT)的发展,越来越多的物联网设备应用到实际的生产生活场景中。然而,由于不同的设备都隶属于不同的制造方,制造方的应用程序之间数据通信机制很多都不兼容,所以使得具有不同数据通信机制的设备之间存在通信壁垒,无法实现设备之间的互联互通。例如,诸如智能手表等可穿戴设备具有健康监测功能,用户在运动时可以通过智能手表来监测用户的心率等身体参数。智能手机通常能够连接至手机端,并将监测数据发送至手机端显示,然而在用户运动过程中看手机会影响到运动的安全性,如果智能手表能够将监测数据传输至诸如耳机等不影响视觉的设备上,则能够避免用户在运动中看手机,提高运动的安全性。然而,由于智能手表和耳机的通信机制不同,二者即使都能与手机连接,但是也无法实现智能手表和耳机之间的通信。因此,如何实现具有不同数据通信机制的设备之间的通信成为了亟需解决的技术问题。
鉴于此,本公开实施例提供了一种通信方法,通过对接入网络的每个设备设置对应的套接字对,并将每个套接字对中的一个套接字设置在同一链表中以实现不同套接字对之间的数据传输,从而能够实现具有不同通信机制的设备之间的直接通信。
图1示出了本公开实施例的通信架构的示意图。参见图1,该通信架构100包括设备111、112、113……11n和网络接入节点120,设备111、112、113……11n分别连接至网络接入节点120,并经由网络接入节点120连接至网络。设备111、112、113……11n可以包括用户侧的用户设备或服务侧的服务器(例如,独立的物理服务器,或多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器)。网络接入节点120可以是将设备连接到网络中以实现设备与网络之间通信的节点,例如网关(Gateway)或提供无线网络的无线访问节点(AP,Access Point)等。
网络接入节点在检测到有设备接入时,表示该设备已经成功连接至网络接入节点。此时,网络接入节点可以针对每个接入的设备生成对应于该设备的套接字对。套接字对(Socketpair)可以是基于socketpair函数所创建的一对未命名且相互连接的套接字(Socket)。具体地,可以调用socketpair函数创建一对无名的套接字描述符SocketA和SocketB(只能在AF_UNIX域中使用),套接字描述符SocketA和SocketB分别存储于二元数组s[0]和s[1]中。这对套接字描述符SocketA和SocketB可以进行双工通信,每一个描述符既可以执行读取操作也可以执行写入,即使在同一个进程中也可以进行通信。当向套接字描述符SocketA的二元数组s[0]中写入数据dataA时,就可以从套接字描述符SocketB的二元数组s[1]中读取到数据dataA(只能从s[1]中读取)。类似地,也可以在套接字描述符SocketB的二元数组s[1]中写入数据dataB,然后从套接字描述符SocketA的二元数组s[0]中读取到数据dataB。但是,若没有在套接字描述符SocketA的二元数组s[0]端写入,而从套接字描述符SocketB的二元数组s[1]端读取,则套接字描述符SocketB的二元数组s[1]端的读取操作会发生阻塞。同样地,若没有在套接字描述符SocketB的二元数组s[1]端写入,而从套接字描述符SocketA的二元数组s[0]端读取,则套接字描述符SocketA的二元数组s[0]端的读取操作也会发生阻塞。此外,即使在套接字描述符SocketB的二元数组s[1]端写入数据,也不能从该套接字描述符SocketB的二元数组s[1]端读取到数据,仍然会发生阻塞;在套接字描述符SocketA的二元数组s[0]端写入数据,也不能从该套接字描述符SocketA的二元数组s[0]端读取到数据,仍然会发生阻塞。也就是说,在套接字对中的一个套接字写入数据,则可以从对应的另一个套接字就可以直接读取该数据;而一个套接字没有写入时,对应的另一个套接字中无法读取任何数据,即发生阻塞。
网络接入节点120可以包括设备影子(Device Shadow)对象121和套接字管理(Socketpair Manager)对象122。其中,设备影子对象121中存储有每个设备的设备标识以及对应的一个套接字,套接字管理对象122中存储有每个设备的设备标识以及对应的另一个套接字。设备标识可以指能够唯一表示其对应的设备,例如,设备ID或设备名称。例如,图1中,设备111的设备标识为ID1,设备111的一个套接字FD11与该设备标识ID1存储于设备影子对象121;而设备111的另一个套接字FD12与该设备标识ID1存储于套接字管理对象122。设备112的一个套接字FD21与其对应的设备标识ID2存储于设备影子对象121,另一个套接字FD22与该设备标识ID2存储于套接字管理对象122。依次类推,设备11n的一个套接字FDn1与其对应的设备标识IDN存储于设备影子对象121,另一个套接字FDn2与该设备标识IDN存储于套接字管理对象122。
存储于套接字管理对象122中的对应于每个设备的套接字可以在套接字管理对象122中实现数据传输。例如,套接字FD12-FDn2能够以链表的形式存储,从而实现每个套接字之间的数据传输。
根据本公开实施例,参见图2,图2示出了根据本公开实施例的通信方法的示意流程图。图2中,通信方法200可以部署于网络接入节点中,由网络接入节点执行。通信方法200可以包括如下步骤。
步骤S210,基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包。
其中,数据包可以是第一设备待发送至连接至网络接入节点的其他设备的数据。例如,用户在运动时智能手表检测到用户的心率数据,可以将该心率数据作为数据包进行发送。
在一些实施例中,方法200还包括:
响应于检测到所述第一设备接入,生成对应于所述第一设备的所述第一套接字对,所述第一套接字对包括第一套接字和第二套接字。
在一些实施例中,方法200还包括:
响应于检测到所述第二设备接入,生成对应于所述第二设备的所述第二套接字对,所述第二套接字对包括第三套接字和第四套接字。
具体地,结合图1,网络接入节点120检测到第一设备111接入时,可以调用socketpair函数生成对应于第一设备111的第一套接字对FD11和FD12,该第一套接字对可以包括第一套接字FD11和第二套接字FD12。网络接入节点检测到第二设备接入112时,可以调用socketpair函数生成对应于第二设备112的第二套接字对FD21和FD22,该第二套接字对可以包括第三套接字FD21和第四套接字FD22。设备111将数据data1存储至数据库以及通过数据发送请求将数据包data1写入第一套接字FD11。
在一些实施例中,还包括:
基于所述第一套接字对中的第二套接字和第一设备标识,生成第一链表元素;以及基于所述第二套接字对中的第四套接字和第二设备标识,生成第二链表元素;
基于所述第一链表元素和所述第二链表元素生成所述链表。
具体地,结合图1,在网络接入节点120生成第一设备111和第二设备112对应的套接字对后,可以将第一设备111的设备标识ID1与第二套接字FD12作为第一链表元素,以及第二设备112的设备标识ID2与第四套接字FD22作为第二链表元素,存储于链表中。该链表可以是双向链表。
步骤S120,基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输。
其中,第一套接字对中的第一套接字接收到数据发送请求后,由于第二套接字与第一套接字为一对套接字对,则从第二套接字可以直接读取到该数据发送请求。而第二套接字又与第三套接字设置于同一链表中,二者能够传输数据,则第二套接字可以将该数据发送请求传输至第三套接字。由于第四套接字与第三套接字为一对套接字对,则从第四套接字可以直接读取到第三套接字中的写入该数据发送请求,从而实现了将该数据发送请求从第一设备对应的第一套接字传输至第二设备对应的第四套接字。
在一些实施例中,所述数据发送请求还包括第二设备标识;将所述数据发送请求传输至所述第二套接字对中的第四套接字,进一步包括:
基于所述第二设备标识在所述链表中查找所述第二设备标识对应的所述第四套接字;
基于所述链表将所述第二套接字的所述数据发送请求传输至所述第四套接字。
具体地,数据发送请求可以包括数据包data1和第二设备标识,第二设备标识可以指示数据包data1所要发送的目标设备。结合图1,数据发送请求写入第一套接字FD11后,可以在第二套接字FD12读取该数据发送请求。根据该数据发送请求中的第二设备标识ID2可以在链表中查找其对应的第四套接字FD22,第二套接字FD12将数据包data1传输至第四套接字FD22。
步骤S130,基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
图1中,数据包data1传输至第四套接字FD22后,与第四套接字FD22同为套接字对的第三套接字FD21则可以读取到该数据包data1。第三套接字FD21将该数据包data1发送至第二设备112,从而完成了将数据包data1从第一设备发送至第二设备,实现了具有不同的通信机制的第一设备和第二设备的直接通信。而且,设备之间能够直接通信且通信内容对网络接入节点不可见,进一步保证了通信的安全性。与传统的需要建立在相同通信机制上的设备互联互通相比,根据本公开实施例的通信方法,接入网络接入节点的设备无需区分服务端和客户端,任何设备都是可以主动发起对其他设备的数据通信,也可以接收来自任何设备的数据。设备甚至可以将网络接入节点作为目的设备,由网络接入节点通过套接字进行数据的传输,简化了设备间构建通信过程的复杂度。
在一些实施例中,方法200还包括:
基于所述第三套接字接收所述第二设备针对所述数据包的反馈信息,所述反馈信息包括反馈数据;
基于所述第四套接字读取所述第三套接字的所述反馈信息,并将所述反馈信息传输至所述第二套接字;
基于所述第一套接字读取所述第二套接字的所述反馈信息,并将所述反馈信息发送至所述第一设备。
图1中,第二设备112在收到数据包data1后,可以针对该数据包生成对应的反馈数据data2,该反馈数据data2可以用于指示第二设备接收到该数据包data1。第二设备112将包括该反馈数据data2的反馈信息发送至网络接入节点120,网络接入节点120调用设备影子对象121中的第三套接字FD21接收该反馈信息,并解析出反馈数据data2。此时,第三套接字FD21写入反馈数据data2,那么与第三套接字FD21对应的第四套接字FD22可以读取到反馈数据data2。在链表中第四套接字FD22可以将该反馈数据data2传输至第二套接字FD12,则第一套接字FD11可以读取到第二套接字FD12的反馈数据data2,从而将该反馈数据data2发送至第一设备111。
在一些实施例中,所述反馈信息还包括第一设备标识;将所述反馈信息传输至所述第二套接字,进一步包括:
基于所述第一设备标识在所述链表中查找所述第一设备标识对应的所述第二套接字;
基于所述链表将所述第四套接字的所述数据包传输至所述第二套接字。
具体地,图1中,第二设备112可以将第一设备标识ID1与反馈数据data2作为反馈信息发送至第三套接字FD21。第三套接字FD21解析反馈信息后得到第一设备标识ID1与反馈数据data2,根据第一设备标识ID1确定出反馈数据data2要发送至设备标识ID1所对应的第二套接字FD12。第四套接字FD22读取反馈数据data2,并基于链表内部的通信将其传输至第二套接字FD12。第一套接字FD11读取到第二套接字FD12的反馈数据data2后发送至第一设备111,完成第二设备112到第一设备111的数据反馈。
结合图1和图3,图3示出了根据本公开实施例的通信方法的示例性示意图。第一设备111可以请求连接至网络接入节点120,然后判断是否连接成功,如果连接不成功则可以继续请求连接,如果连接成功可以进行数据包发送。第一设备111成功连接至网络接入节点120时,网络接入节点120可以创建关于第一设备111的第一套接字对FD11和FD12并将其中的第一套接字FD11以及第一设备标识ID1关联地存储在设备影子对象121中的第一设备影子对象,第二套接字FD12以及第一设备标识ID1关联地加入套接字管理对象122中的链表中。此时,如果没有其他设备向第一设备111发送数据,则第一设备111的数据接收线程从第一套接字FD11读取数据时会发生阻塞。
第二设备112可以请求连接至网络接入节点120,然后判断是否连接成功,如果连接不成功则可以继续请求连接,如果连接成功则网络接入节点120可以创建关于第二设备112的第二套接字对FD21和FD22并将其中的第三套接字FD21以及第二设备标识ID2关联地存储在设备影子对象121中的第二设备影子对象,第四套接字FD22以及第二设备标识ID2关联地加入套接字管理对象122中的链表中。
第一设备111的数据发送线程可以判断第一设备111是否有数据待发送,如果第一设备111不需要发送数据,则第一设备111的数据发送线程判继续判断是否有数据待发送。第一设备111需要向第二设备112发送数据包data1时,第一设备111的数据发送线程解析目标设备112的标识ID2,并构建第一设备111的包括第二设备标识ID2和数据包data1的数据发送请求。第一设备111的数据发送线程将数据发送请求发送至网络接入节点120。
网络接入节点120中的第一设备影子对象持续判断是否有数据待处理。如果没有则继续判断是否有待处理的数据,如果有则对待处理的数据进行解析。此时,网络接入节点120的第一设备影子对象接收到来自第一设备的数据发送请求,并对其进行解析,以判断数据发送请求的类型是否为查询类型、接收类型或发送类型,从而执行对应的数据处理。数据发送请求对于第一设备111来说属于发送类型,则第一设备影子对象执行对应的数据发送处理,将该数据发送请求写入第一套接字FD11。则套接字管理对象122中对应的第二套接字FD12则可以读取到该数据发送请求。套接字管理对象122对该数据发送请求进行解析,以得到目标设备的设备标识为ID2和待发送的数据包data1。套接字管理对象122还基于该目标设备的设备标识ID2在链表中查找设备标识ID2对应的第四套接字FD22,并将数据包data1转发至该第四套接字FD22。则第二设备影子对象中的第三套接字FD21则可以读取到该数据包data1。第二设备影子对象持续判断是否有数据待处理,如果没有则继续判断,如果有则对待处理的数据进行解析。第三套接字FD21读取到数据包data1后,对其进行解析,判断数据包data1是否为查询类型、接收类型或发送类型,从而执行对应的数据处理。数据包data1对于第二设备112来说属于接收类型,则第二设备影子对象中的第三套接字FD21将数据包data1发送至第二设备112。第二设备112的数据接收线程读取第三套接字FD21的数据包data1,从而实现第一设备与第二设备之间的直接通信。
第二设备112可以针对接收到该数据包data1成反馈数据data2,以指示第二设备112已经接收到数据包data1。该反馈数据data2与第一设备标识ID1一起作为反馈信息由第二设备112反馈至第一设备111。第二设备112将该反馈信息发送至网络接入节点120。
网络接入节点120中的第二设备影子对象判断是否有数据待处理。如果没有则继续判断是否有待处理的数据,此时第二设备影子对象接收到反馈信息后,则反馈信息为待处理的数据。对该反馈信息进行解析,以判断该反馈信息是否为查询类型、接收类型或发送类型,从而执行对应的数据处理。该反馈信息相对于第二设备112属于发送类型,则将该反馈信息写入第二设备影子对象中的第三套接字FD21。
套接字管理对象122中对应的第四套接字FD22则可以读取到该反馈信息。套接字管理对象122对该反馈信息进行解析,以得到目标设备的设备标识为ID1和待发送的反馈数据data2。套接字管理对象122还基于该目标设备的设备标识ID1在链表中查找设备标识ID1对应的第二套接字FD12,并将反馈数据data2转发至该第二套接字FD12。则第一设备影子对象中的第一套接字FD11则可以读取到该反馈数据data2。第一设备影子对象持续判断是否有数据待处理,如果没有则继续判断,如果有则对待处理的数据进行解析。第一套接字FD11读取到反馈数据data2后,对其进行解析,判断反馈数据data2是否为查询类型、接收类型或发送类型,从而执行对应的数据处理。反馈数据data2对于第一设备111来说属于接收类型,则第一设备影子对象中的第一套接字FD11将反馈数据data2发送至第一设备111。
在实际应用中,第一设备111可以是智能手表,第二设备112可以是耳机,司仪设备111和第二设备112均连接至手机,则此时手机可以是网络接入节点120,智能手表、耳机和手机组成了一个网络。传统通信方法中,具有不同通信机制的智能手表和耳机之间并不能直接进行通信,而根据本公开实施例的通信方法,智能手表能够将其采集到的诸如用户心率等身体健康参数或其他数据发送至耳机,并由耳机播放给用户。避免了用户在运动过程中查看手机,保证了用户的安全。
再例如,第一设备111可以是诸如手机、平板电脑、笔记本电脑等小屏幕显示设备,第二设备112可以是比第一设备111具有更大屏幕的显示设备。第一设备111和第二设备112可以连接至网络接入节点120,例如提供WIFI的路由器等。传统通信方法中,第一设备111仅能将图像数据传输至第二设备112,例如将第一设备111的图像传输至第二设备112的屏幕,这是由于第一设备111和第二设备112均具有专门的投屏协议,但是这种投屏协议只能用于图像数据和/或音频数据的传输。由于第一设备111和第二设备112各自通信机制不同,所以用户仍然需要在第一设备111上进行操作,而第二设备112此时只能显示第一设备111的操作画面的图像数据,无法实现在第二设备112上直接对第一设备111中的文件或应用程序等进行操作。根据本公开实施例所提供的通信方法,能够通过在网络接入节点120处分别针对第一设备111和第二设备112创建套接字对,并将每个套接字对中的一个套接字设置在同一链表中以实现不同套接字对之间的数据传输,从而能够实现具有不同通信机制的第一设备111和第二设备112之间的直接通信。具体地,第一设备111的显示界面上可以包括文件Document和应用程序App,第一设备111可以通过第一套接字对FD11和FD12,以及第二套接字对FD21和FD22将关于显示界面的数据发送至第二设备112。第二设备112可以对接收到的显示界面的数据进行显示,以及对所显示的文件Document或应用程序App执行一操作,生成关于该操作的指令数据,并将该指令数据发送至第一设备111,第一设备111接收到该指令数据后可以基于该指令数据执行对应的操作,从而实现在第二设备112中即可对第一设备111中的数据进行操作。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种通信装置。
参考图4,所述通信装置,包括:
设备影子模块,用于基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包;
套接字管理模块,用于基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输;
所述设备影子模块还用于基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的通信方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的通信方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如上任一实施例所述的通信方法。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种通信方法,包括:
基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包;
基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输;
基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
2.根据权利要求1所述的方法,其中,所述数据发送请求还包括第二设备标识;
将所述数据发送请求传输至所述第二套接字对中的第四套接字,进一步包括:
基于所述第二设备标识在所述链表中查找所述第二设备标识对应的所述第四套接字;
基于所述链表将所述第二套接字的所述数据发送请求传输至所述第四套接字。
3.根据权利要求2所述的方法,还包括:
基于所述第三套接字接收所述第二设备针对所述数据包的反馈信息,所述反馈信息包括反馈数据;
基于所述第四套接字读取所述第三套接字的所述反馈信息,并将所述反馈信息传输至所述第二套接字;
基于所述第一套接字读取所述第二套接字的所述反馈信息,并将所述反馈信息发送至所述第一设备。
4.根据权利要求3所述的方法,还包括:
所述反馈信息还包括第一设备标识;将所述反馈信息传输至所述第二套接字,进一步包括:
基于所述第一设备标识在所述链表中查找所述第一设备标识对应的所述第二套接字;
基于所述链表将所述第四套接字的所述数据包传输至所述第二套接字。
5.根据权利要求2所述的方法,还包括:
响应于检测到所述第一设备接入,生成对应于所述第一设备的所述第一套接字对,所述第一套接字对包括第一套接字和第二套接字;
和/或,响应于检测到所述第二设备接入,生成对应于所述第二设备的所述第二套接字对,所述第二套接字对包括第三套接字和第四套接字。
6.根据权利要求2所述的方法,还包括:
基于所述第一套接字对中的第二套接字和第一设备标识,生成第一链表元素;以及基于所述第二套接字对中的第四套接字和第二设备标识,生成第二链表元素;
基于所述第一链表元素和所述第二链表元素生成所述链表。
7.一种通信装置,包括:
设备影子模块,用于基于对应于第一设备的第一套接字对中的第一套接字接收第一设备的数据发送请求,所述数据发送请求包括数据包;
套接字管理模块,用于基于所述第一套接字对中的第二套接字读取所述第一套接字的所述数据发送请求,并将所述数据发送请求传输至对应于第二设备的第二套接字对中的第四套接字;其中,所述第二套接字和所述第三套接字设置于同一链表中以进行数据传输;
所述设备影子模块还用于基于所述第二套接字对中的第三套接字读取所述第四套接字的所述数据发送请求,将所述数据包发送至所述第二设备。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至6任意一项所述的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至6任一所述方法。
10.一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770694.1A CN114979305B (zh) | 2022-06-30 | 2022-06-30 | 一种通信方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770694.1A CN114979305B (zh) | 2022-06-30 | 2022-06-30 | 一种通信方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979305A true CN114979305A (zh) | 2022-08-30 |
CN114979305B CN114979305B (zh) | 2024-03-22 |
Family
ID=82968614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210770694.1A Active CN114979305B (zh) | 2022-06-30 | 2022-06-30 | 一种通信方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979305B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002059742A1 (en) * | 2000-12-21 | 2002-08-01 | Reba Technologies, Inc. | Server farm information processing system and method of operation |
US20020112089A1 (en) * | 1996-08-21 | 2002-08-15 | Compaq Information Technologies Group, L.P. | Method and system for supporting a system call and interprocess communication in a fault-tolerant,scalable distributed computer environment |
US20020199000A1 (en) * | 2001-06-26 | 2002-12-26 | International Business Machines Corporation | Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network |
US20040122953A1 (en) * | 2002-12-23 | 2004-06-24 | International Business Machines Corporation | Communication multiplexor for use with a database system implemented on a data processing system |
US20040221059A1 (en) * | 2003-04-16 | 2004-11-04 | Microsoft Corporation | Shared socket connections for efficient data transmission |
US20150365493A1 (en) * | 2014-06-16 | 2015-12-17 | International Business Machines Corporation | Optimizing Network Communications |
CN110011967A (zh) * | 2019-02-27 | 2019-07-12 | 新奥特(北京)视频技术有限公司 | 一种用于数据传输的方法和系统 |
CN111314481A (zh) * | 2020-02-27 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备以及可读存储介质 |
CN112202780A (zh) * | 2020-09-30 | 2021-01-08 | 深圳市元征科技股份有限公司 | 一种基于双套接字的数据传输方法、装置、设备及介质 |
CN114637703A (zh) * | 2022-03-25 | 2022-06-17 | 北京有竹居网络技术有限公司 | 数据访问装置、方法、可读介质和电子设备 |
-
2022
- 2022-06-30 CN CN202210770694.1A patent/CN114979305B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020112089A1 (en) * | 1996-08-21 | 2002-08-15 | Compaq Information Technologies Group, L.P. | Method and system for supporting a system call and interprocess communication in a fault-tolerant,scalable distributed computer environment |
WO2002059742A1 (en) * | 2000-12-21 | 2002-08-01 | Reba Technologies, Inc. | Server farm information processing system and method of operation |
US20020199000A1 (en) * | 2001-06-26 | 2002-12-26 | International Business Machines Corporation | Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network |
US20040122953A1 (en) * | 2002-12-23 | 2004-06-24 | International Business Machines Corporation | Communication multiplexor for use with a database system implemented on a data processing system |
US20040221059A1 (en) * | 2003-04-16 | 2004-11-04 | Microsoft Corporation | Shared socket connections for efficient data transmission |
US20150365493A1 (en) * | 2014-06-16 | 2015-12-17 | International Business Machines Corporation | Optimizing Network Communications |
CN110011967A (zh) * | 2019-02-27 | 2019-07-12 | 新奥特(北京)视频技术有限公司 | 一种用于数据传输的方法和系统 |
CN111314481A (zh) * | 2020-02-27 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备以及可读存储介质 |
CN112202780A (zh) * | 2020-09-30 | 2021-01-08 | 深圳市元征科技股份有限公司 | 一种基于双套接字的数据传输方法、装置、设备及介质 |
CN114637703A (zh) * | 2022-03-25 | 2022-06-17 | 北京有竹居网络技术有限公司 | 数据访问装置、方法、可读介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
汪平: "基于Socket API通信技术的计算机实验室管理系统开发", 重庆师范大学学报(自然科学版), no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN114979305B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10601834B2 (en) | Multi-blockchain network data processing | |
EP3389230B1 (en) | System for providing dialog content | |
US9591081B2 (en) | Virtual desktop access using wireless devices | |
EP3117586A1 (en) | Cross-layer context management | |
EP3275162A1 (en) | Systems and techniques for web communication | |
JP2024525140A (ja) | データインタラクションのための方法および装置 | |
CN109951560B (zh) | 提高应用服务并发量及应用速度的方法、终端及存储介质 | |
EP2854426B1 (en) | Communication system with transport link mechanism and method of operation thereof | |
CN113709055B (zh) | 基于ble的通讯方法、装置、设备、系统以及存储介质 | |
CN114979305B (zh) | 一种通信方法、装置、设备、存储介质及程序产品 | |
US20220322199A1 (en) | Electronic device transmitting and/or receiving packet through network slice and method for operating the same | |
EP3332538B1 (en) | Service elements | |
CN112383617B (zh) | 进行长连接的方法、装置、终端设备以及介质 | |
CN105429981A (zh) | 游戏语音传输方法、终端、语音服务模块及游戏系统 | |
US20220052902A1 (en) | Method for managing remote device through management device | |
CN113347234B (zh) | 网络信息获取方法、装置、系统、计算机设备和存储介质 | |
KR20230118391A (ko) | 전자 장치 및 이의 동작 방법 | |
KR20220102504A (ko) | Rcs 데이터를 수신 또는 전송하는 전자 장치 및 전자 장치의 동작 방법 | |
CN113901374A (zh) | 网页刷新方法、装置、电子设备及存储介质 | |
CN114064165A (zh) | 一种应用页面处理方法及装置 | |
US20170078155A1 (en) | Apparatus and method for configuring, networking and controlling unique network-capable devices | |
CN117216428B (zh) | 一种网页资源请求方法、终端设备及计算机可读存储介质 | |
KR20230023176A (ko) | 웨어러블 디바이스와의 연동을 위한 전자 장치 및 그의 동작방법 | |
KR20220167624A (ko) | Frc를 이용한 영상 통화를 수행하는 전자 장치 및 전자 장치의 동작 방법 | |
KR20220138570A (ko) | 네트워크 슬라이스를 통하여 패킷을 송신 및/또는 수신하는 전자 장치 및 그 동작 방법 |
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 |