一种基于Netty通信的移动自组织网络资源共享系统的制作方法

文档序号:16009245发布日期:2018-11-20 20:27阅读:235来源:国知局

本发明涉及通信技术领域,具体是一种基于Netty通信的移动自组织网络资源共享系统。



背景技术:

Netty是目前最流行的一个高性能、异步事件驱动的NIO框架,Netty与同类框架相比,他具有首屈一指的功能、性能、健壮性、可定制性和可扩展性。

目前Netty被用于服务提供者和服务消费者之间,服务提供者、服务消费者和性能统计节点之间使用Netty进行异步/同步通信;也被用于游戏服务器架构中的应用大数据领域。Netty被用于很多领域,据了解没有被用于基于热点的手机之间的网络通信。



技术实现要素:

本发明的目的在于提供一种基于Netty通信的移动自组织网络资源共享系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于Netty通信的移动自组织网络资源共享系统,包含服务器端、分享信息服务模块、文件下载服务模块和断点下载服务模块,服务器端包含分享信息服务模块、文件下载服务模块和断点下载服务模块,分享信息服务模块还连接客户端分享信息模块,文件下载服务模块还连接客户端文件下载模块,断点下载服务模块还连接客户端断点下载模块。

作为本发明的进一步技术方案:还包括通信部分,通信部分包括分享模块、逻辑控制模块、Netty通信模块、无线传输模块和人机交互模块,分享模块与逻辑控制模块相连接,逻辑控制模块还连接Netty通信模块,Netty通信模块还连接无线传输模块。

作为本发明的进一步技术方案:所述服务器端包含分享模块、逻辑控制模块、分享信息服务模块、文件下载服务模块和断点下载服务模块,分享模块与逻辑控制模块相连接,逻辑控制模块还分别连接分享信息服务模块、文件下载服务模块和断点下载服务模块,分享信息服务模块、文件下载服务模块和断点下载服务模块均连接无线传输模块。

作为本发明的进一步技术方案:所述客户端获取分享信息模块、客户端文件下载模块和客户端断点下载模块均连接服务器端。

作为本发明的进一步技术方案:所述无线传输模块采用WiFi链路进行通讯。

与现有技术相比,本发明的有益效果是:

1. 在Android手机之间,通过一个手机开启热点,其他手机通过WiFi连接,组成一个无线局域网,进行资源共享,在这个无线局域网内数据传输使用的是Netty框架进行通信。

2. 在手机之间实现了基于Netty框架的一对多通信的机制。

3.使用灵活,可以应用于不同场合。例如:火车站,汽车站,广场等范围小,人群比较聚集的地方。

4. 用户之间可以随意一个用户开启分享模式,然后多个用户发现处于正在分享模式的用户,连接该用户,拉取该用户的分享列表。点击选择要下载的文件加入下载文件列表。点击下载就可以通过热点自组网快速获得自己想要的文件。

5. 解决不同Android用户在没有网络情况下的文件共享。

6. 支持任意文件格式,支持任意文件大小。

8. 用户之间可以随意一个用户开启分享模式,然后多个用户发现处于正在分享模式的用户,连接该用户,拉取该用户的分享列表。点击选择要下载的文件加入下载文件列表。点击下载就可以通过热点自组网快速获得自己想要的文件。

9. 无需网络,不费流量,比蓝牙快数倍。

10. 用户的移动设备在基于Android平台的热点与WiFi功能快速连接。

附图说明

图1是本发明的整体框架图;

图2为本发明的系统结构图;

图3为系统数据传输功能总体架构模型图;

图4为服务器端设计架构图;

图5为查看分享模块的架构图;

图6为文件下载模块的架构图;

图7为断点下载模块的架构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-7,一种基于Netty通信的移动自组织网络资源共享系统,分为分享端和发现端,分享端作为服务器端,发现端作为客户端,服务器端包含分享信息服务模块、文件下载服务模块和断点下载服务模块,分享信息服务模块还连接客户端分享信息模块,文件下载服务模块还连接客户端文件下载模块,断点下载服务模块还连接客户端断点下载模块。还包括通信部分,通信部分包括分享模块、逻辑控制模块、Netty通信模块、无线传输模块和人机交互模块,分享模块与逻辑控制模块相连接,逻辑控制模块还连接Netty通信模块,Netty通信模块还连接无线传输模块。所述服务器端包含分享模块、逻辑控制模块、分享信息服务模块、文件下载服务模块和断点下载服务模块,分享模块与逻辑控制模块相连接,逻辑控制模块还分别连接分享信息服务模块、文件下载服务模块和断点下载服务模块,分享信息服务模块、文件下载服务模块和断点下载服务模块均连接无线传输模块。所述客户端获取分享信息模块、客户端文件下载模块和客户端断点下载模块均连接服务器端。

本发明的工作原理是:作为一个完整的资源共享系统,根据资源的共享场景不同以及用户的需求不同,将用户分为分享端用户和发现端用户,分享端用户的功能包括蓝牙分享本软件,选择想要分享的文件,开启分享,管理分享列表,设置用户名和头像。发现端用户的功能包括发现分享者并连接,查看分享,下载分享文件,查看下载历史,设置用户名和头像。系统总体结构图如图2所示。

基于Netty的通信协议总体结构有分享模块,逻辑控制模块,Netty通信模块,无线传输模块,人机交互模块.

服务器端设计如图4所示,包含分享模块,逻辑控制模块,分享信息服务模块,文件下载服务模块,断点下载服务模块。分享端用户点击“开启分享”按钮,分享端用户手机开启热点,等待发现端用户连接,如果有客户端连接,接收客户端发来的指令,如果指令为“GetFileInfo”,调用分享信息服务模块,读取JSON字符串,通过调用无线传输模块发送给客户端;如果指令为“GetFileList”,读取ID号参数,调用文件下载服务模块,根据ID号找到文件,读取文件发送给客户端;如果指令为“GetHalfFile”,调用断点下载服务模块,读取客户端发送过来的文件ID和断点信息,读取文件,通过调用无线传输模块发送给客户端。

客户端设计:1、查看分享模块,发现端用户点击“发现”按钮,发现端用户的手机开启WiFi功能,扫描附近开启分享的分享端用户,如果发现分享端用户,则显示该用户的用户名和头像,当用户点击分享端用户的头像,发现端用户的手机连接到分享端用户的热点,在查看分享功能中,逻辑控制模块会开启一个子线程,在子线程中创建Netty客户端,连接分享端用户手机创建的Netty服务器端,Netty框架提供了一个通信信道,通过通信信道给服务器端发送“GetFileInfo”指令,服务器端会返回包含分享文件信息的JSON字符串,逻辑控制模块收到JSON字符串后,使用Google公司的Gson工具将JSON字符串转为Java对象,通知UI(User Interface),UI以列表展示分享端用户分享的文件信息。

2、下载分享文件模块,在下载分享文件模块中,发现端用户在查看分享界面,选择多个想要下载的分享文件,点击“下载”按钮,逻辑控制模块获取用户选择的想要下载的文件的ID(Identity)号,加上“GetFileList”指令,发送给服务器端,服务器端根据接收到ID号,查找对应的分享文件的文件信息,根据文件信息读取文件,通过Netty提供的通信信道发送给客户端,在客户端的逻辑控制模块中,接收服务器端发来的数据并保存,同时计算下载进度,将下载进度等信息更新到UI,以便用户查看。

3、断点下载模块,在断点下载模块中,客户端在获取到服务端分享的信息后,读取保存断点信息的数据文件,判断是否存在来自该服务端的断点文件信息,如果存在并且该文件在分享列表,则进行断点下载,客户端将断点文件信息加上“GetFileList”指令发送给服务器端,服务器端根据指令和断点文件信息,查找对应的分享文件的文件信息,根据断点文件信息从断点处读取文件,通过Netty提供的通信信道发送给发现端用户,在客户端的逻辑控制模块中,接收服务器端发来的数据并从断点处开始保存,同时计算下载进度,将下载进度等信息更新到UI,以便用户查看。

基于Netty的通信协议总体架构有获取分享信息模块,文件下载模块,断点文件。

查看分享协议实现:

在查看分享功能中,在子线程中创建Netty客户端,连接分享端用户手机创建的Netty服务器端,Netty框架提供了一个通信信道,通过通信信道给服务器端发送“GetFileInfo”指令,服务器端收到“GetFileInfo”指令后,将预先加载的分享文件信息的JSON字符串发送给客户端,客户端接收来自服务器端发送来的包含分享文件信息的JSON字符串。

下载文件协议实现:

在下载分享文件功能中,通过通信通道给服务器端发送“GetFile”指令,同时加上需要下载的文件的ID号,服务器端收到指令后,通过ID号查找到分享文件,读取该分享文件,将数据封装在TransferFile类对应的对象中,发送给客户端,客户端接收到TransferFile对象后,从中提取数据,追加到当前正在传输的文件中,再通过通信通道发送当前传输文件的已传输的字节数给服务器端,服务器端中已传输的字节数的位置读文件封装数据到TransferFile如图5所示,如此循环,直到该文件传输完。TransferFile是自定义的一个可以携带字节数据,记录传输进度的类。

断点下载协议实现:

在断点下载功能中,通过通信信道给服务器端发送“GetHalfFile”指令,同时加上断点文件信息,服务器端收到指令后,根据信息去读取数据,将数据封装在TransferFile类对应的对象中,发送给客户端,客户端接收到TransferFile对象后,从中提取数据,从断点处开始追加数据到出现断点的文件中。再通过通信信道发送当前传输文件的已传输的字节数给服务器端,服务器端中已传输的字节数的位置读文件封装数据到TransferFile,如此循环,直到该文件传输完。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

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