1、点对点数据交换(P2P) -1- 目录 需求分析 5 1.1 课程设计目的 5 1.2 课程设计要求 5 1.3 选题与操作流程 5 1.4 开发环境与开发平台 5 总体设计 5 2.1 总体设计概念 5 2.2 系统功能 5 2.3 系统架构 6 2.4 模块划分 6 详细设计 6 3.1 软件层次模型 6 3.2 协议结构 6 3.3 数据流程图 8 系统实现编码及运行结果 9 4.1 服务器端设计与编码 9 4.2 客户端设计与编码 11 4.3 运行结果 12 结论与总结 19 5.1 课程设计结论 20 5.2 课程设计总结与体会 20 课程设计分工及参考文献 20 6.1 课程设计
2、分工 20 6.2 参考文献 21 附录 22 关键代码 22 点对点数据交换(P2P) -2- 需求分析 1.1 课程设计目的 本次计算机网络课程设计,旨在通过该课程设计,使学生了解、掌握 TCP、 UDP 协议的原理;了解、掌握 Socket 编程的方法;了解、掌握应用协议设计的 思想;利用 Winsock API 或者 Java Socket API 编制一个能部署在 Internet 上 的点对点数据交换(P2P) 、HTTP/FTP 服务器系统、共享白板。 1.2 课程设计要求 要求每组学生从上述3个系统中任选一个, 独立完成系统的功能设计和实现, 使所实现的系统可以能够包含主要的内
3、容要求, 并要求学生必须在报告中明确具 体分工情况。 1.3 选题与操作流程 在网络越来越发达的今天, 人们对网络的依赖越来越多, 越来越离不开网络, 由此而产生的聊天工具越来越多,类似 QQ、网络聊天时一类的聊天系统的发展 日新月异。因此,基于我们实际的知识结构构成以及网络聊天在当今时代的盛行 趋势,本课程设计小组选择了课程设计题目点对点数据交换(P2P) ,用于实现基 于服务器转发的任意多点间的数据共享与交换。其具体设计内容如下: 1)类似 P2P 的 QQ 聊天系统,有客户端和服务器端。 2)服务器端记录当前在线客户列表,把客户列表发送给每一个在线客户, 并实时刷新。 3)任一个客户可以
4、和任意其它的客户进行交互,即从在线客户列表中选择 一个或一组其它客户通过服务器转发彼此进行交互,包括信息交互,文件交互。 总体设计 2.1 总体设计概念 为实现网络聊天的功能,采用 Java Socket 编程,服务器与客户端采用了 TCP/IP 连接方式,在设计聊天方案时,实行将所有信息发往服务器端,再由服 务器进行分别处理的思路,服务器端是所有信息的中心。 服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上 线提示等公告,客户端则提供接收公告的功能。 2.2 系统功能 本课程设计按照实验的具体要求,首先应用 Socket 编程创建客户端和服务 器端,它们之间通过一个交互的连接来实现数据通信;然后在客户端 设置一个 点对点数据交换(P2P) -3- 监听器,用于监听服务器发来的消息;最后在客户端设置点对点的文件交互需要 用到的接受和发送类,以及表征文件传输过程的进