一种基于文件共享协议的跨平台数据即时传输方法_3

文档序号:9931320阅读:来源:国知局
的操作方式完成跨平台传输。
[0160](I)安装 SAMBA服务
[0161](2)配置本解决方案的指令包
[0162](3)重启 samba服务
[0163]5Android平台通用实现方式
[0164]Andro id平台本身不支持SMB协议,也无法通过其Linux内核实现SMB服务。本解决方案封装并实现了 Andro i d平台的SMB服务及应用指令。
[0165]在Android系统中使用本解决方案的流程主要如下:
[ΟΙ66] (I)开启自定义的Service,监听指定端口,通常为445。
[0167](2)在Service中注册广播,用于接受SMB指令
[0168](3)在广播接收到Connect指令时,取出广播接收到的Bundle中的连接信息,并创建与目标平台间的基于TCP的socket连接,并创建smb链接。
[0169](4)接收到Push指令时,取出广播接收到的bundle中的传输信息。其他传输操作与windows平台对Push的处理一致。
[0170](5)接收到Pul I指令时,取出广播接收到的bundle中的传输信息。其他传输操作与windows平台对Pul I的处理一致。
[0171 ] (6)接收到Disconnect指令时,广播提醒Service执行Disconnect方法,释放smb与socket连接,并注销广播。
【主权项】
1.一种基于文件共享协议的跨平台数据即时传输方法,其特征在于,包括如下步骤:S1、解析SMB协议的结构和规范,在此基础上对依赖TCP协议的SMB协议进行二次定义;S2、根据二次定义的SMB协议,均以TCP协议为基础,对通用的数据传输接口及指令进行定义,使基于Android、Windows及Linux平台之外的平台能够应用该传输方法;S3、创建分别对不同平台符合既定传输接口及指令的数据传输模块。2.根据权利要求1所述的基于文件共享协议的跨平台数据即时传输方法,其特征在于,SI的具体方法如下: 1.1解析SMB协议,SMB协议有协议头和协议指令两个关键部分; 1.2SMB协议二次定义 1.2.1协议头二次定义,在结构体中添加PLATFORM字段用于定义平台信息; 1.2.2协议指令二次定义,对SMB协议原有的指令进行重定义以及扩展如下: 定义NEGOTIATE指令,用于与目标平台初次沟通; 定义SESS1N_SETUP指令,初始化已建立连接,并获取协商一致的连接信息; 定义TREE_CONNECT指令,获取权限范围内的目录信息; 定义CREATE指令,用于创建数据传输目录及数据文件; 定义OPEN指令,用于打开数据源; 定义READ指令,用于读取数据源中的数据; 定义WRITE指令,用于向目标数据源写入数据; 定义CLOSE指令,用于结束所有操作; 定义DISC0NNECT指令,用于断开连接,释放资源。3.根据权利要求2所述的基于文件共享协议的跨平台数据即时传输方法,其特征在于,S2的具体方法如下: 2.1创建连接,Get_connect1n,用于获得平台间的通讯链路; 2.2初始化SMB连接 Init_SMB_Connect1n,利用NEGOTIATE 与 SESS1N_SETUP 指令与目标平台的 SMB 协议进行沟通并获得有效SMB连接信息; 2.3获取目标平台可操作目录 Get_Target_path,利用TREE_CONNECT指令获取有效的操作路径及目录列表; 2.4创建目标平台文件 Get_Target_Input_Stream,利用CREATE指令在目标平台上创建目标文件或文件夹,对文件夹,获得一个目标平台的输入流; 2.5开启目标数据源 Get_Target_Output_Stream,传入目标路径,利用OPEN指令开启文件,并获得一个目标平台上输出的数据流; 2.6读取目标数据源数据 Read_Target_Data,通过READ指令从数据流中获得数据; 2.7向目标数据源写入数据 ffrite_Target_Data,通过WRITE指令向数据流中写入数据; 2.8关闭所有数据流 Close_Stream,通过CLOSE指令关闭与目标数据源的所有数据流; 2.9断开连接,Disconnect,通过DISCONNECT指令释放与目标平台的SMB连接及TCP连接,并释放相关资源。4.根据权利要求3所述的基于文件共享协议的跨平台数据即时传输方法,其特征在于,创建Windows平台符合既定传输接口及指令的数据传输模块: 3.1Windows平台上数据connect流程,该流程即为windows与其他平台或windows平台创建SMB连接的流程; 3.1.1创建socket连接 3.1.2调用GetSMBConnect1n函数,该函数用于创建基于TCP的SMB连接,参数为具体的SMB连接的连接信息及获取到的socket连接; 3.1.3调用GetTargetPath函数,该函数用于获取目标平台的可操作目录; 3.2Windows平台上数据push流程,该流程即为windows向其他平台或windows平台主动推送信息的流程; 3.2.1调用GetInputStream函数,该函数用于获取一个本地输入流,参数为connect1n的句柄; 3.2.2调用GetOutputStream函数,该函数用于获取一个远程输出流,通过该流可以向指定的文件写入信息,参数为远程文件的SMB路径; 3.2.3循环调用Read函数,该函数用于不断读取文件数据; 3.2.4循环调用Write函数,该函数用于向流中写入数据; 3.2.5调用Close函数,该函数用于关闭流,并做文件保存工作; 3.3Windows平台上数据pul I流程,该流程即为windows从其他平台或windows平台主动获取数据的流程; 3.3.1调用GetInputStream函数,该函数用于获取一个远程输入流,参数为connect1n的句柄; 3.3.2调用GetOutputStream函数,该函数用于获取一个本地文件输出流,通过该流可以向指定的文件写入信息,参数为本地文件的绝对路径; 3.3.3循环调用Read函数,该函数用于不断读取流中的数据; 3.3.4循环调用Write函数,该函数用于向本地文件写入数据; 3.2.5调用Close函数,该函数用于关闭流,并做文件保存工作; 3.3Windows平台上结束操作断开连接流程 3.3.1调用Disconnect函数,该函数用于释放连接; 3.3.2调用底层socket的disconnect函数,该函数用于释放底层socket连接。5.根据权利要求4所述的基于文件共享协议的跨平台数据即时传输方法,其特征在于,Linux平台通用实现方式如下: 对于支持原生SMB协议的系统,其实现方式与操作流程与Windows平台一致;对于不支持源生SMB协议的Linux系统,可以通过以下流程使SMB服务生效,然后使用与windows无异的操作方式完成跨平台传输;流程如下:(I)安装SAMBA服务;(2)配置本解决方案的指令包;(3)重启samba服务。6.根据权利要求5所述的基于文件共享协议的跨平台数据即时传输方法,其特征在于,Android平台通用实现方式如下: (1)开启自定义的Service,监听指定端口,通常为445; (2)在Service中注册广播,用于接受SMB指令; (3)在广播接收到Connect指令时,取出广播接收到的Bundle中的连接信息,并创建与目标平台间的基于TCP的socket连接,并创建smb链接; (4)接收到Pu s h指令时,取出广播接收到的b u n d I e中的传输信息,其他传输操作与windows平台对Push的处理一致; (5)接收到Pu 11指令时,取出广播接收到的b u n d I e中的传输信息,其他传输操作与windows平台对Pul I的处理一致; (6)接收到Dis connect指令时,广播提醒Serv ice执行D is connect方法,释放smb与socket连接,并注销广播。
【专利摘要】本发明公开了一种基于文件共享协议的跨平台数据即时传输方法,属于信息安全领域,包括以下步骤:S1、解析SMB协议的结构和规范,在此基础上对依赖TCP协议的SMB协议进行二次定义;S2、根据二次定义的SMB协议,均以TCP协议为基础,对通用的数据传输接口及指令进行定义;S3、创建分别对不同平台符合既定传输接口及指令的数据传输模块。与现有的数据传输通用方案相比,主要有以下几点优势:1、跨平台传输无障碍,对PC及大部分移动终端的操作系统都有很好的支持;2、通过安全链路,直接从数据源向目标数据传输数据,避免第三方存储介质可能产生的数据错误,保证了数据的完整性和安全性。
【IPC分类】H04L29/06, H04L29/08
【公开号】CN105721464
【申请号】CN201610070918
【发明人】黄旭, 杨博
【申请人】四川秘无痕信息安全技术有限责任公司
【公开日】2016年6月29日
【申请日】2016年1月29日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1