发明内容
针对上述的缺陷,本发明的目的在于提供一种用于互动教学的数据传输方法及***,其在能使课堂中教师端和学生端的网络环境更加简洁单一,具有数据传输更稳定,控制响应更及时,维护及开发成本低等优点。
为了实现上述目的,本发明提供一种用于互动教学的数据传输方法,包括:教师端向多个学生端通过TCP/IP方式发送文件传输开始控制信息,并通过UDP/IP方式向预定义的组播IP地址及端口发送UDP数据包;所述学生端监听所述组播IP地址及端口并接收UDP数据包;所述教师端通过TCP/IP方式向所述学生端发送文件传输结束控制信息;所述学生端检查是否丢包,若丢包则通过TCP/IP方式向所述教师端反馈丢包信息;所述教师端根据所述丢包信息重发相应的UDP数据包;所述学生端解析所述UDP数据包并保存。
根据本发明的用于互动教学的数据传输方法,所述向预定义的组播IP地址及端口发送UDP数据包的步骤之前还包括:所述教师端将文件读为字节数组,根据UDP数据包的结构拆分字节数组组成UDP数据包,所述UDP数据包由10×1024个字节构成,0-3位表示数据包ID,4-7位表示数据包数量,8-11位表示数据包索引,12-10228位表示文件的具体内容。
根据本发明的用于互动教学的数据传输方法,所述学生端检查是否丢包的步骤包括:所述学生端根据所述数据包ID、数据包数量以及数据包索引检查是否丢包并确认丢失UDP数据包的数据包ID。
根据本发明的用于互动教学的数据传输方法,所述学生端解析所述UDP数据包并保存的步骤包括:所述学生端将接收到的UDP数据包保存在字节数组中,并通过字节输出流生成文件。
根据本发明的用于互动教学的数据传输方法,所述方法还包括:所述教师端向所述预定义的组播IP地址及端口发送本机的IP地址;所述学生端监听所述预定义的组播IP地址并接收教师端IP地址,并将学生端本机IP地址发送至所述教师端。
本发明相应提供一种用于互动教学的数据传输***,包括教师端、多个学生端以及用于地址解析和数据转发的路由器,所述教师端包括:第一控制信息发送模块,用于向多个学生端通过TCP/IP方式发送文件传输开始控制信息及文件传输结束控制信息;文件信息发送模块,用于向预定义的组播IP地址及端口发送UDP数据包,所述学生端包括:组播监听模块,用于监听所述组播IP地址及端口并接收UDP数据包;数据检查模块,用于检查是否丢包;第二控制信息发送模块,用于向所述教师端反馈丢包信息;数据解析模块,用于解析所述UDP数据包并保存。
根据本发明的用于互动教学的数据传输***,所述教师端还包括文件拆分模块,用于将文件读为字节数组,根据UDP数据包的结构拆分字节数组组成UDP数据包,所述UDP数据包由10×1024个字节构成,0-3位表示数据包ID,4-7位表示数据包数量,8-11位表示数据包索引,12-10228位表示文件的具体内容;所述学生端还包括文件组合模块,用于将接收到的UDP数据包保存在字节数组中,并通过字节输出流生成文件。
根据本发明的用于互动教学的数据传输***,所述数据检查模块还用于根据所述数据包ID、数据包数量以及数据包索引检查是否丢包并确认丢失UDP数据包的数据包ID。
根据本发明的用于互动教学的数据传输***,所述教师端还包括第一地址收发模块,用于向所述预定义的组播IP地址及端口发送本机的IP地址,并用于接收学生端发来的学生端IP地址;所述学生端还包括第二地址收发模块,用于从所述预定义的组播IP地址接收教师端IP地址,并将本机IP地址发送至所述教师端。
本发明还提供一种用于互动教学的数据传输***,包括教师端、多个学生端以及用于地址解析和数据转发的路由器,所述教师端与所述学生端之间通过TCP/IP方式传输控制信息,所述教师端与所述学生端之间通过UDP/IP方式传输文件信息。
本发明通过TCP/IP方式实现教师端与学生端之间控制信息的传输,通过UDP/IP方式以及丢包重传机制实现教师端与学生端之间文件信息的传输,控制信息采用TCP/IP的方式主要保证每条控制信息都能准确的发送给学生端(TCP协议的面向连接握手机制保证可靠性);群发文件需要更快的数据传输特性,采用UDP组播技术可以更好的实现群发的实际情况,从而数据传输更稳定,控制响应更及时。并且教师端和多个学生端建立无线网络局域网,省去现有课堂互动教学***的中转服务器或者云端服务器,局域网的数据传输不受外界网络多种因素的影响,抗干扰能力更强更稳定,网络环境更加简洁单一,维护及开发成本低。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一种用于互动教学的数据传输***100,包括教师端10、多个学生端20以及路由器30。路由器30用于地址解析及数据转发。教师端10通常为计算机,如台式机或笔记本电脑,学生端20为优选为平板电脑,显而易见,学生端20也可为台式机或笔记本电脑。该***100以软件和/或硬件形式内置于教师端10和学生端20内。教师端软件和学生端软件分别使用Socket(套接字)编程,所有数据传输连接建立在TCP/IP(Transmission Control Protocol/ Internet Protocol,传输控制协议/因特网互联协议)、UDP/IP(User Datagram Protocol/ Internet Protocol,用户数据报协议/因特网互联协议)基础上,并同在一个局域网内完成。TCP/IP 的Socket编程主要是在MINA框架基础上进行上层协议开发与定义。
教师端10包括第一控制信息发送模块11以及文件信息发送模块12。
第一控制信息发送模块11用于向多个学生端20通过TCP/IP方式发送文件传输开始控制信息及文件传输结束控制信息,通过TCP/IP方式传输控制信息能够保证每条控制信息都能准确的发送给学生端20。
文件信息发送模块12用于向预定义的组播IP地址及端口发送UDP数据包。该预定定义的端口为3045,3046,3047等自定义的端口数据。具体的教师端10可向一个学生端20发送文件信息,也可向多个学生端20发送文件信息,实际上在文件传输开始控制信息中包含了组播IP地址及端口,接收到了文件传输开始控制信息中的学生端20从该组播IP地址及端口获取UDP数据包即可。
优选的是,教师端10还包括文件拆分模块13,文件拆分模块13用于将文件读为字节数组,根据UDP数据包的结构拆分字节数组组成UDP数据包,所述UDP数据包由10×1024个字节构成,0-3位表示数据包ID,4-7位表示数据包数量,8-11位表示数据包索引,12-10228位表示文件的具体内容。
学生端20包括:组播监听模块21、数据检查模块22、第二控制信息发送模块23以及数据解析模块24。
组播监听模块21,用于监听所述组播IP地址及端口并接收UDP数据包;
数据检查模块22,用于检查是否丢包。数据检查模块22根据数据包ID、数据包数量以及数据包索引检查是否丢包并确认丢失UDP数据包的数据包ID。具体的,根据数据包总量和已有数据包的数量即可知道是否丢包,将已有数据包的ID对应至数据包索引中即可查找丢失的数据包ID。
第二控制信息发送模块23,用于向教师端10反馈丢包信息,该丢包信息为控制信息,通过TCP/IP方式进行传输,保证能准确的发送给教师端10。
数据解析模块24,用于解析UDP数据包并保存。具体的,数据解析模块24将接收到的UDP数据包保存在字节数组中,并通过字节输出流生成文件。该过程与教师端10将文件拆分为UDP数据包的过程相反。
优选的是,教师端10还包括第一地址收发模块14,用于向预定义的组播IP地址及端口发送本机的IP地址,并用于接收学生端10发来的学生端IP地址;学生端20还包括第二地址收发模块25,用于从预定义的组播IP地址接收教师端IP地址,并将本机IP地址发送至教师端10。从而在数据传输时,教师端10和学生端20能够互相获知对方的IP地址,保证数据传输的正确性。
在本发明中,教师端10若需要向一个学生端20发送文件,则通过第一控制信息发送模块11向一个学生端发送文件传输开始控制信息,该信息中包括了组播的IP地址及端口;教师端10若需要向多个学生端20发送文件,则通过第一控制信息发送模块11向多个学生端发送文件传输开始控制信息,该信息中包括了组播的IP地址及端口。然后接收到文件传输开始控制信息的学生端20扫描该组播的IP地址及端口,获取文件数据流。当学生端20接受到来自教师端10文件传输结束控制信息时,学生端20检查接受到的UDP数据包是否完整,若不完整则通过TCP/IP传输方式向教师端10发送丢包信息,该丢包信息中包括了丢失UDP数据包的ID,教师端10根据该丢失UDP数据包的ID重发数据包。从而实现了教师端10和学生端20的点对点、点对多点的数据传输及信息交互。其中,文件传输开始控制信息、文件传输结束控制信息,学生端20发出的丢包信息均为控制信息,通过TCP/IP方式进行传输,主要保证每条控制信息都能准确的发送(TCP协议的面向连接握手机制保证可靠性);教师端10通过UDP/IP的连接方式群发文件信息,群发文件需要更快的数据传输特性,采用UDP组播技术可以更好的适用于群发的实际情况;并且学生端20则通过TCP/IP传输方式将丢包信息回发给教师,保证群发数据的完整性。
显而易见,本发明同样可以用于学生端20向教师端10发送文件信息(如提交作业),仅仅是文件发送端和文件接收端发生调换而已。学生端20向教师端10发送文件传输开始控制信息,该信息中包括了组播的IP地址及端口。然后教师端10扫描该组播的IP地址及端口,获取文件数据流。当教师端10接受到来自学生端20的文件传输结束控制信息时,教师端10检查接受到的UDP数据包是否完整,若不完整则通过TCP/IP传输方式向学生端20发送丢包信息,该丢包信息中包括了丢失UDP数据包的ID,学生端20根据该丢失UDP数据包的ID重发数据包。从而实现了学生端20通过UDP/IP方式向教师端10发送文件信息。
在本发明中,TCP 和UDP为两种不同的连接方式且IP通信通道不同,TCP传输的数据均视为控制信息,UDP传输的数据均视为文件信息(图片数据、音频数据)。例如:学生端20在TCP通道上收到JSON格式字符串{"s":100040,"t":16547798,"mark":-1,"m":""}就表示需要启动锁屏功能;当学生端20在TCP通道上收到JSON格式字符串{"s":100050,"t":16547798,"mark":-1,"m":""}就表示取消锁屏;学生端20在TCP通道上收到 JSON格式字符串{"s":100060,"t":16547798,"mark":-1,"m":""}表示开启师生同等。教师端10与学生端20之间通过TCP/IP方式传输控制信息,教师端10与学生端20之间通过UDP/IP方式传输文件信息。
图2是本发明一个实施例中教师端向学生端发送文件信息的流程图,该流程包括:
步骤S201,教师端向学生端发送文件传输开始控制信息,例如向学生端发送JSON格式字符串:{"s":100210,"t":16547798,"mark":-1,"m":""}。其中100210为自定义的控制命令表示符,表示开始传送文件(通知学生端启动UDP数据监听),mark,m均为自定义的字符分别表示一些类型标记,仅教师端和学生端软件可以识别和辨认。
步骤S202,学生端启动UDP数据监听线程,监听预设端口组播数据。
步骤S203,教师端发送UDP数据包。
步骤S204,教师端发送文件传输结束控制信息,例如向学生端发送JSON格式字符串:{"s":100230,"t":16547798,"mark":-1,"m":""}。
步骤S205,学生端检查是否丢包。
步骤S206,学生端发送丢包信息至教师端。
步骤S207,教师端根据丢包信息发送相应UDP数据包。
步骤S208,学生端向教师端发送接收完成信息。
步骤S209,学生端将文件进行解析保存。
本发明中涉及到的互动教学课堂中学生端通过无线局域网环境连接到教师端,不用通过连接第三台中转服务器(服务器软件)或者云端服务器来转发相应数据,教师端可以点对点或者点对多点的方式对学生端进行控制和数据交互,实现了教师端将屏幕同步给学生端、学生端收教师端群发或者单独发送的文件、试题、操作指令等功能。
本发明通过TCP/IP方式实现教师端与学生端之间控制信息的传输,通过UDP/IP方式以及丢包重传机制实现教师端与学生端之间文件信息的传输,控制信息采用TCP/IP的方式主要保证每条控制信息都能准确的发送给学生端(TCP协议的面向连接握手机制保证可靠性);群发文件需要更快的数据传输特性,采用UDP组播技术可以更好的实现群发的实际情况,从而数据传输更稳定,控制响应更及时。并且教师端和多个学生端建立无线网络局域网,省去现有课堂互动教学***的中转服务器或者云端服务器,局域网的数据传输不受外界网络多种因素的影响,抗干扰能力更强更稳定,网络环境更加简洁单一,维护及开发成本低。
图3是本发明一种用于互动教学的数据传输方法的流程图,该方法通过如图1所示的***实现,该方法包括:
步骤S301,教师端向多个学生端通过TCP/IP方式发送文件传输开始控制信息,并通过UDP/IP方式向预定义的组播IP地址及端口发送UDP数据包。本步骤通过第一控制信息发送模块11以及文件信息发送模块12共同完成。优选的是,向预定义的组播IP地址及端口发送UDP数据包之前还包括:教师端将文件读为字节数组,根据UDP数据包的结构拆分字节数组组成UDP数据包, UDP数据包由10×1024个字节构成,0-3位表示数据包ID,4-7位表示数据包数量,8-11位表示数据包索引,12-10228位表示文件的具体内容。
步骤S302,学生端监听组播IP地址及端口并接收UDP数据包。本步骤通过组播监听模块21实现。
步骤S303,教师端通过TCP/IP方式向学生端发送文件传输结束控制信息。本步骤通过第一控制信息发送模块11实现。
步骤S304,学生端检查是否丢包,若丢包则通过TCP/IP方式向教师端反馈丢包信息。本步骤通过数据检查模块22及第二控制信息发送模块23实现。优选的是,本步骤包括:学生端根据所述数据包ID、数据包数量以及数据包索引检查是否丢包并确认丢失UDP数据包的数据包ID。
步骤S305,教师端根据丢包信息重发相应的UDP数据包。本步骤通过文件信息发送模块12实现。
步骤S306,学生端解析UDP数据包并保存。本步骤通过数据解析模块24实现。优选的是,本步骤包括:学生端将接收到的UDP数据包保存在字节数组中,并通过字节输出流生成文件。
优选的是,该方法还包括:
教师端向所述预定义的组播IP地址及端口发送本机的IP地址;
学生端监听所述预定义的组播IP地址并接收教师端IP地址,并将学生端本机IP地址发送至教师端。
本发明中教师端直接与学生端进行数据交互,并解决点对点、点对多点的数据传输技术难题;省去了中转服务器的环节,为***构建节约成本;用快速的局域网组播技术实现点对多点文件的群发,节省了学生课后去下载资料的时间。
综上所述,本发明通过TCP/IP方式实现教师端与学生端之间控制信息的传输,通过UDP/IP方式以及丢包重传机制实现教师端与学生端之间文件信息的传输,控制信息采用TCP/IP的方式主要保证每条控制信息都能准确的发送给学生端(TCP协议的面向连接握手机制保证可靠性);群发文件需要更快的数据传输特性,采用UDP组播技术可以更好的实现群发的实际情况,从而数据传输更稳定,控制响应更及时。并且教师端和多个学生端建立无线网络局域网,省去现有课堂互动教学***的中转服务器或者云端服务器,局域网的数据传输不受外界网络多种因素的影响,抗干扰能力更强更稳定,网络环境更加简洁单一,维护及开发成本低。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。