1、 1 基于基于 TCP/IPTCP/IP 协议的网络通信小应用程序协议的网络通信小应用程序 1. 课程设计的题目及要求课程设计的题目及要求 1.1 课程设计题目 掌握基于 TCP/IP 协议实现网络通信,理解 TCP 与 UDP 的不同特性以及实现 方式。课程设计要求建立一个基于 TCP/IP 协议的网络通信小应用程序,实验可 采用 UDP 或 TCP,建议基于 WINDOWS 平台。 1.1.1 功能要求 建立一个基于中心服务器方式即时数据通信平台 (IM) 。 要求如下(*为选做内容): 1. 能进行用户管理,所有用户必须登录到服务器,由服务器维护在线信息。 2. IM(Instant M
2、essage)功能:用户登录后能进行实时多方点到点短信息通信, 如聊天; 3. 能选择要求服务器进行转发服务; 4. 能保存通信记录到数据库(SQL Server 或其他桌面型数据库) ; 5. 能进行双方文件传输,能显示进度; 6. 支持断点重传。 (检查时需有功能随时中断传送,并在下次启动能显示重 传状态) ; *7. 数据包加密; 8.实时语音双向传送功能; *9.多方通话功能; 10.界面设计要求布局合理,信息清晰。 1.1.2 对于所有功能的要求 1) 要求清晰描述所设计的应答机制,数据包格式,所用数据结构及其相应算法,机密 机制等; 2) 对于功能实现要求描绘实现方法,流程。 2
3、2. 开发工具、软硬件环境简介开发工具、软硬件环境简介 2.1 开发工具 开发工具:Microsoft Visual Studio 2008 2.2 软硬件环境 2.2.1 软件环境 操作系统:Windows XP/Windows 7 开发软件:Microsoft Visual Studio 2008 开发语言:C#语言 平台:Microsoft.NET Framework v2.0 2.2.2 硬件环境 分辨率:1000750 服务器: PentiumIII 500 以上或更高; 内存:128M 以上; 硬盘:至少 40G 以上; 工作站: PentiumII 266 以上微机; 内存:64
4、MB 硬盘: 至少 5G 以上; 3. 程序实现的基本思想程序实现的基本思想 3.1 程序设计分析 本设计实现的基于 TCP/IP 协议的网络通信小应用程序,实际上是一个基于 Socket 的聊天室。聊天室主要由聊天室服务器和聊天室客户端组成。聊天室服 务器负责管理和客户端连接并发送消息给客户端; 聊天室客户端负责接收或者发 送聊天消息,登录聊天室服务器等。 一个聊天室服务器应该支持多个聊天室客户端进行同时连接。聊天室服务 器和聊天室客户端之间根据聊天协议进行通信。 3 3.2 基本思想 程序的实现主要分为两大部分,即服务器部分和客户端部分。程序首先设计 聊天室的服务器,再设计客户端部分,最后
5、生成可执行文件。 1 服务器 服务器端管理着聊天任务,它维持着一张当前在线用户的列表,转发用户发 送来的消息。设计思想如下: 3) 利用控件设计窗体; 4) 功能实现; 监听本机 IP 地址中的一个指定的端口; 当有客户端向该端口发出请求时, 服务器程序立刻建立一个与该客户 端的连接并启动一个新的线程来处理该客户端; 根据客户端发送来的各种不同的请求,执行相应的操作,并将结果返 回给客户端。 5) 运行调试。 2 客户端 客户端应用程序包含用户登录窗口和用户聊天的主窗口,它允许用户登录到 服务器,可以向服务器发送消息,同时可以接收从服务器返回的信息。 1) 设计登录窗体和聊天窗体; 2) 基于
6、课程设计的要求实现各窗体对应的功能; 向服务器发送连接请求; 得到服务器程序的确认后,建立与服务器的连接,并获得与服务器交 互的流通道; 通过网络流通道与服务器端的程序进行数据通信。 3) 运行调试。 4 4. 系统功能框架图、系统流程图系统功能框架图、系统流程图 4.1 功能框架图 图 1 功能框架图 5 4.2 系统流程图 图 2 系统流程图 5. 具体实现过程具体实现过程 5.1 设计准备 5.1.1 TCP 的运用 客户端只能和服务器通信,无法和另外一个客户端直接通信。为了使两个客 户端能相互通信,所有的客户一律先把聊天信息发给服务器,并告诉服务器改信 息是发送给哪个客户的,服务器收到信息后,再将该信息转发给另外一个客户。 本设计的实现主要用了 TcpListener 类用于用于侦听和接受传入的连接请求。 6 基本方法: 表 1 TCP 连接基本方法 TcpListener 类基本方法 作用 Start 启动监听 Stop 关闭 TcpListener 并停止监听请求 AcceptSocket 在同步阻