数据传输方法及装置和电子设备与流程

文档序号:23063779发布日期:2020-11-25 17:48阅读:101来源:国知局
数据传输方法及装置和电子设备与流程

本说明书实施例涉及通信技术领域,尤其涉及一种数据传输方法及装置和电子设备。



背景技术:

随着移动终端的不断普及,需要在不同移动终端之间的进行数据传输的场景和需求越来越多。特别是针对线下无网络状态时数据传输的需求尤为突出。

为此,需要提供一种适用于不需要连接到网络或热点,就可以在不同移动终端之间进行数据传输的方案。



技术实现要素:

本说明书实施例提供的一种数据传输方法及装置和电子设备。

根据本说明书实施例的第一方面,提供一种数据传输方法,所述方法包括:

第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端;

第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端;

在所述wifi对等网络下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

可选的,在所述第一终端创建wifi对等网络之前,所述方法还包括:

第一终端判断是否支持wifi对等网络模式;

如果支持,执行所述第一终端创建wifi对等网络的步骤;

可选的,所述方法还包括:

如果不支持,第一终端创建wifi热点,并在所述wifi热点提供的局域网中构建套接字服务端;

第二终端连接所述第一终端创建的wifi热点,并在所述wifi热点提供的局域网中构建套接字客户端;

在所述wifi热点提供的局域网下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

可选的,所述第一终端创建wifi对等网络,包括:

第一终端调用wifip2pmanger.creategroup(),创建wifi对等网络;

所述第一终端创建wifi热点,包括:

第一终端调用wifimanger.addnetwork(),创建wifi热点。

可选的,所述第一终端判断是否支持wifi对等网络模式,包括:

第一终端调用wifimanger.isp2psupport(),并获取返回值;

根据所述返回值,确定是否支持wifi对等网络模式。

可选的,所述构建套接字服务端,包括:

调用socketserver:newserversocket(port),构建套接字服务端。

可选的,所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接,包括:

第二终端调用clientsocket.connect((newinetsocketaddress(ip,port)),timeout),使得构建的套接字客户端与所述第一终端构建的套接字服务端建立tcp通信。

可选的,所述ip为192.168.43.1,port为7878。

可选的,所述第二终端加入所述第一终端创建的wifi对等网络,包括:

第二终端调用wifip2pmanger.connect(channel,wificonfig,actionlistener),加入所述第一终端创建的wifi对等网络。

可选的,所述第二终端连接所述第一终端创建的wifi热点,包括:

第二终端调用wifimanger.connect(wificonfoguration),连接所述第一终端创建的wifi热点。

可选的,所述套接字客户端与套接字服务端之间的读取文件缓存大小设置为512k。

可选的,所述数据包括大文件,所述数据传输包括大文件传输。

根据本说明书实施例的第二方面,提供一种数据传输装置,所述装置包括:

创建网络单元,第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端;

加入网络单元,第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端;

建立连接单元,在所述wifi对等网络下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

数据传输单元,通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

可选的,所述装置还包括:

模式判断单元,第一终端判断是否支持wifi对等网络模式;

所述创建网络单元,包括:在所述模式判断单元确定支持时,第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端。

可选的,所述创建网络单元还包括:在所述模式判断单元确定不支持时,第一终端创建wifi热点,并在所述wifi热点提供的局域网中构建套接字服务端;

所述加入网络单元还包括:第二终端连接所述第一终端创建的wifi热点,并在所述wifi热点提供的局域网中构建套接字客户端;

所述建立连接单元还包括:在所述wifi热点提供的局域网下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接。

可选的,所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接,包括:

第二终端调用clientsocket.connect((newinetsocketaddress(ip,port)),timeout),使得构建的套接字客户端与所述第一终端构建的套接字服务端建立tcp通信。

可选的,所述ip为192.168.43.1,port为7878。

可选的,所述套接字客户端与套接字服务端之间的读取文件缓存大小设置为512k。

可选的,所述数据包括大文件,所述数据传输包括大文件传输。

根据本说明书实施例的第三方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述任一项数据传输方法。

本说明书实施例,提供了一种数据传输方案,利用wifi对等网络搭建一个局域网,并结合套接字技术,由需求数据传输的移动终端在该wifi对等网络中构建对应的套接字服务端和客户端;通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,实现所述移动终端之间的传输数据。一方面,wifi对等网络属于局域网无需使用移动数据流量;另一方面,wifi对等网络下的网速均值到达5m/s;再一方面,wifi对等网络的传输距离达到100米。

附图说明

图1是本说明书一实施例提供的数据传输方法的流程图;

图2是本说明书一实施例提供的数据传输装置的硬件结构图;

图3是本说明书一实施例提供的数据传输装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实现方式并不代表与本说明书相一致的所有实现方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本文中的多个可以是指两个或两个以上的情况。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如前所述,随着移动终端的不断普及,需要在不同移动终端之间的进行数据传输的场景和需求越来越多。特别是针对线下无网络状态时数据传输的需求尤为突出。

在相关技术中,针对无网络状态时通常可以采用蓝牙或nfc等短距离无线通信技术实现数据传输。但是,不管是蓝牙还是nfc,传输距离和传输速率均限制了数据传输的应用范围。

针对这样的缺陷,本说明书旨在提供一种传输距离远、传输速率大、无需使用移动数据流量的数据传输方案。

以下可以参考图1所示的例子介绍本说明书提供的数据传输方法,所述方法可以包括以下步骤:

步骤110:第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端。

所述wifi对等网络也称为wifip2p,具体是安卓(androdi)4.0及以上的操作系统提供的一种无需要连接到网络或热点(p2p框架符合wifi编程指令规范),就允许应用程序连接到附件的终端设备的技术。

所述wifip2p,通常是以一个组的形式存在的。当第一台终端设备创建wifip2p后,就会生成一个p2p组。其它终端设备可以通过搜索网络或者输入网络参数的方式加入到这个p2p组,从而连接到第一台终端设备所在的wifi对等网络中。所述wifi对等网络提供的是一个局域网的网络,在这个网络内无需消耗移动数据流量。

以下进一步介绍第一终端创建wifi对等网络,以及构建套接字服务端:

第一终端可以通过调用wifip2pmanger.creategroup(),创建wifi对等网络。

其中,所述wifip2pmanger.creategroup()是android.net.wifi.p2p下的方法(也称为类)。

在创建了wifi对等网络后,第一终端可以在所述wifi对等网络中构建套接字服务端(socketserver)。具体地,

所述第一终端可以通过调用socketserver:newserversocket(port),构建套接字服务端。

其中,所述套接字(socket)是java框架提供的基于tcp/ip传输协议封装的传输模块,可以用于数据传输通道。所述port表示网络端口。

在wifip2p技术中,当两天终端设备通过wifip2p连接后,会随机或者指定其中一台终端设备为p2p组的组长(groupowner),相当于一个p2p服务端server。另一台终端设备为p2p组的成员(groupclient),相当于一个p2p客户端。在p2p组内,成员可以直接获取到组长的ip地址和端口,组长能直接获得组内成员的信息,但直接获取不到组员的ip地址,组员也不能直接获取到其他成员的信息。

值得一提的是,本说明书提供的实施例,虽然也会创建wifip2p,也会创建服务端,但是这个服务端并非wifip2p技术原本需要创建的p2p服务端,而是套接字服务端;类似的,客户端也并非p2p客户端,而是套接字客户端。

本说明书之所以以套接字服务端作为wifip2p中服务端,以套接字客户端作为wifip2p中客户端,是因为通过基于套接字的优化传输协议,可以提高wifip2p网络下的传输稳定性。

步骤120:第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端(socketclient)。

步骤130:在所述wifi对等网络下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接。

在第一终端创建了wifip2p组后,第二终端如果想要加入这个p2p组,可以通过调用wifip2pmanger.connect(channel,wificonfig,actionlistener),加入所述第一终端创建的wifi对等网络。

第二终端调用clientsocket.connect((newinetsocketaddress(ip,port)),timeout),构建的套接字客户端,并将该套接字客户端与套接字服务端建立tcp通信。

其中,所述ip为192.168.43.1,port为7878。这里的ip是第一终端创建的套接字服务端的ip地址,port是第一终端创建的套接字服务端的端口。

正在通过传入的参数(第一终端的ip和port),才实现的建立套接字客户端与第一终端的套接字服务端的连接。

如前所述的,在wifip2p组内,第二终端作为成员可以获取到组长(第一终端)的ip和端口。

步骤140:通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

本实施例,利用wifi对等网络搭建一个局域网,并结合套接字技术,由需求数据传输的移动终端在该wifi对等网络中构建对应的套接字服务端和客户端;通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,实现所述移动终端之间的传输数据。一方面,wifi对等网络属于局域网无需使用移动数据流量;另一方面,wifi对等网络下的网速均值到达5m/s;再一方面,wifi对等网络的传输距离达到100米。

值得一提的是,本说明书提供的套接字客户端与套接字服务端之间的读取文件缓存大小可以设置为512k。选择512k的是经过大量实验,这512k这个缓存值下,能使得内存读写更快,资源利用更合理,极大保证文件传输速度。

由于本说明书实施例采用wifi对等网络,网速均值可以到达5m/s,因此可以满足大文件传输需求,即本说明书中的所述数据可以包括大文件,所述数据传输可以包括大文件传输。

另外本说明书还可以通过多线程技术,支持不同终端(如第一终端与第二终端)之间进行多个文件同时传输。以及还可以通过断点续传技术,将待传输的大文件拆分为多个子文件,依次进行传输。

在图1实施例基础上,本说明书还提供了一种p2p和wifi热点的双模式下的数据传输方案,用于保证连接通过的健壮性;具体地:

在步骤110之前,还可以包括:

步骤101:第一终端判断是否支持wifi对等网络模式;

如果支持,则执行所述步骤110;

如果不支持,则执行如下步骤:

步骤111:第一终端创建wifi热点,并在所述wifi热点提供的局域网中构建套接字服务端。

具体的,第一终端调用wifimanger.addnetwork(),创建wifi热点。

步骤121:第二终端连接所述第一终端创建的wifi热点,并在所述wifi热点提供的局域网中构建套接字客户端;

具体的,第二终端调用wifimanger.connect(wificonfoguration),连接所述第一终端创建的wifi热点。

步骤131:在所述wifi热点提供的局域网下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

步骤140:通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

在该实施例中,所述第一终端判断是否支持wifi对等网络模式,包括:

第一终端调用wifimanger.isp2psupport(),并获取返回值;

根据所述返回值,确定是否支持wifi对等网络模式。

这里的返回值可以是预设的,如0和1,0可以表示不支持,1表示支持,当然这仅是一种示例,而非对返回值的具体限定。

本说明书还提供了对应前述图1所示实施例,以第一终端为执行主体的方法实施例,该方法包括:

第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端;

在第二终端加入所述wifi对等网络后,响应所述第二终端构建的套接字客户端发起的连接,建立所述套接字客户端与所述套接字服务端之间的连接;

通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,与第二终端进行传输数据。

该实施例具体实现过程也请参考上述图1实施例。

类似的,本说明书还提供了对应前述图1所示实施例,以第二终端为执行主体的方法实施例,该方法包括:

第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端;

所述套接字客户端建立与所述第一终端在所述wifi对等网络中构建套接字服务端之间的连接;

通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,与第一终端进行传输数据。

该实施例具体实现过程也请参考上述图1实施例。

与前述数据传输方法实施例相对应,本说明书还提供了数据传输装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书数据传输装置所在设备的一种硬件结构图,除了图2所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据数据传输实际功能,还可以包括其他硬件,对此不再赘述。

请参见图3,为本说明书一实施例提供的数据传输装置的模块图,所述装置对应了图1所示实施例,所述装置包括:

创建网络单元310,第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端;

加入网络单元320,第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端;

建立连接单元330,在所述wifi对等网络下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

数据传输单元340,通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

可选的,所述装置还包括:

模式判断单元,第一终端判断是否支持wifi对等网络模式;

所述创建网络单元310,包括:在所述模式判断单元确定支持时,第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端。

可选的,所述创建网络单元310还包括:在所述模式判断单元确定不支持时,第一终端创建wifi热点,并在所述wifi热点提供的局域网中构建套接字服务端;

所述加入网络单元320还包括:第二终端连接所述第一终端创建的wifi热点,并在所述wifi热点提供的局域网中构建套接字客户端;

所述建立连接单元330还包括:在所述wifi热点提供的局域网下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接。

可选的,所述创建网络单元310中的第一终端创建wifi对等网络,包括:

第一终端调用wifip2pmanger.creategroup(),创建wifi对等网络;

所述创建网络单元310中的第一终端创建wifi热点,包括:

第一终端调用wifimanger.addnetwork(),创建wifi热点。

可选的,所述模式判断单元,包括:

第一终端调用wifimanger.isp2psupport(),并获取返回值;根据所述返回值,确定是否支持wifi对等网络模式。

可选的,所述加入网络单元320中的第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接,包括:

第二终端调用clientsocket.connect((newinetsocketaddress(ip,port)),timeout),使得构建的套接字客户端与所述第一终端构建的套接字服务端建立tcp通信。

可选的,所述ip为192.168.43.1,port为7878。

可选的,所述加入网络单元320中的第二终端加入所述第一终端创建的wifi对等网络,包括:

第二终端调用wifip2pmanger.connect(channel,

wificonfig,actionlistener),加入所述第一终端创建的wifi对等网络。

可选的,所述加入网络单元320中的第二终端连接所述第一终端创建的wifi热点,包括:

第二终端调用wifimanger.connect(wificonfoguration),连接所述第一终端创建的wifi热点。

可选的,所述套接字客户端与套接字服务端之间的读取文件缓存大小设置为512k。

可选的,所述数据包括大文件,所述数据传输包括大文件传输。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上图3描述了数据传输装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

第一终端创建wifi对等网络,并在所述wifi对等网络中构建套接字服务端;

第二终端加入所述第一终端创建的wifi对等网络,并在所述wifi对等网络中构建套接字客户端;

在所述wifi对等网络下所述第二终端构建的套接字客户端建立与所述第一终端构建的套接字服务端之间的连接;

通过所述套接字客户端与套接字服务端之间连接后提供的传输通道,在所述第一终端和第二终端之间传输数据。

在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-onlymemory,缩写:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、快闪存储器、硬盘或者固态硬盘。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域技术人员在考虑说明书及实践这里公开的实施例后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1