4)掌握SQL Server数据库系统的编程应用;
5)加深对文件传输技术的设计和实现方法的理解;
6)掌握用Socket编程接口开发面向连接的网络应用程序的方法。
1.3课题任务
本课题采用C/S模式,使用Socket网络编程的基本原理,需完成以下任务内容:
1)系统能够实现图形用户界面;
2)实现局域网内的单聊,群聊;
3)实现局域网内的文件传输;
4)区分教师和学生的用户权限;
5)设计方案实现:教师收发作业,学生查看和提交作业;
6)其他适用校园局域网通信的功能;
1.4论文的组织结构
第一章介绍了课题研究的背景,以及对课题的目的和任务进行了简单的阐述。
第二章介绍了实现校园局域网通信所用到的相关知识与关键技术,分析并讨论系统实现的基本模型和原理,便于理解后续章节里系统的设计和实现。
第三章具体阐述了校园局域网通信工具的设计思路,对系统的需求进行分析,构思出设计方案,包括登陆、注册模块以及客户端、服务器模块的通信流程图。
第四章具体分析并展示系统实现的逐个功能模块,尤其是对其中的主要功能模块进行重点分析,其他功能模块进行展示。同时本章也是论文全部内容的总体概括。
1.5本章小结
本章介绍了实现的校园局域网通信工具的背景和意义,以及课题的主要目的和任务,并合理安排论文结构,较为清晰地规划出全文脉络。
2 校园局域网通信工具的技术研究
2.1 基于TCP的多线程网络通信
在基于TCP的网络应用开发中,Socket是一种流的机制,线程通过Socket进行数据流的读取和发送【3】。
2.1.1 传输控制协议及其连接
TCP(Transmission Control Protocol),即传输控制协议。TCP是一个端到端(Peer-to-Peer)的传输层协议,处于应用层和网络层之间。在数据传输之前,由TCP模块在运行于不同主机上的两个应用程序之间建立直接连接,通常称为虚拟连接,其后的TCP报文在此连接的基础上进行传输【4】。TCP协议在IP协议提供的服务基础上,提供面向连接的、可靠的、全双工的数据流传输服务。
TCP用三路握手(three-way handshake)过程创建一个连接【5】。在连接创建过程中,很多参数要被初始化,例如序号被初始化以保证按序传输和连接的强壮性。
一对终端同时初始化一个它们之间的连接是可能的。但通常是由一端打开一个接口(socket)然后监听来自另一方的连接,这就是通常所指的被动打开(passive open)。服务器端被被动打开以后,用户端就能开始创建主动打开(active open)。文献综述
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。