编号:TCP/IP网络编程课设(论文)说明书题目:即时聊天软件设计院(系):计算机科学与工程学院专业:计算机科学与技术学生姓名:学号:指导教师:2011年11月21日目录1任务概述..................................................................................................11.1编写目的.............................................................................................................................11.2项目背景.............................................................................................................................11.3参考资料.............................................................................................................................12框架设计..................................................................................................22.1整体框架.............................................................................................................................22.11需求分析..........................................................................................................................22.12用例设计..........................................................................................................................22.13整体框架设计..................................................................................................................42.14分析设计..........................................................................................................................52.2模块设计.............................................................................................................................72.21服务器..............................................................................................................................72.22客户端..............................................................................................................................83详细设计..................................................................................................93.1服务器与客户端通信(TCP)设计.......................................................................................93.2客户端与客户端之间通信(UDP)设计.............................................................................104软件使用说明.........................................................................................114.1系统运行环境...................................................................................................................114.11硬件................................................................................................................................114.12软件................................................................................................................................114.2服务器使用说明...............................................................................................................114.3客户端使用说明...............................................................................................................125总结........................................................................................................17附录.............................................................................................................181服务器代码..........................................................................................................................182客户端主要代码..................................................................................................................2511任务概述1.1编写目的在完成了“即时聊天系统”项目的可行性研究和需求分析的基础上,为了明确软件需求、安排项目规划与进度、组织软件开发与测试,项目小组经过深入讨论和分析之后,提出了这份概要设计说明书。此概要设计说明书对《即时聊天系统》软件的解决方案、功能分配、模块划分、程序的总体结构、输入输出和接口设计、运行设计等方面做了全面概括性说明,为该软件的详细设计奠定基础。此文档为系统分析员工作的阶段性总结,并提供项目组长、设计人员和开发人员参考。1.2项目背景现即时聊天系统是目前Internet上最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。随着互联网的发展,即时通讯的运用将日益广泛。所开发软件名称:即时聊天系统项目开发成员:软件用户:局域网用户软件用途:此项目为桂林电子科技大学计算机科学与工程学院TCP/IP网络编程的课程设计选题。目标是在Linux操作系统下实现服务器功能,在windows操作系统下实现即时聊天功能。1.3参考资料张子阳:C#编写简单的聊天程序框架设计2.1整体框架2.11需求分析根据任课教师的要求及我自己的编程能力,写出以下需求:1、在Linux操作系统下实现服务器功能,windows操作系统下实现即时聊天功能。2、登录时只需要提供用户名即可,无需输入密码。3、允许多人在线聊天(至少能在六人之间进行相互聊天)。4、聊天发送的消息包括:用户名称、发送时间及正文。5、某用户刚登录服务器时,服务器需对其发送实时在线用户列表。6、某用户登录或退出程序时都需要给服务器发送一个消息以通知其他用户。7、能够查看聊天记录。2.12用例设计通常来说,一个用例对应一个功能,即程序的一个执行路径或执行流程。本程序主要有以下几个用例:服务器运行、客户端登录,客户端发送信息,客户端接受信息,客户端关闭。1、服务器运行表2.121服务器运行用例主路径可选路径1、运行程序,显示登录窗口2、输入用户名3、点击“登录按钮”,登录成功3、“登录”失败如果登录的用户名为空,重新进入第2步。4、连接服务器5、连接服务器成功5.1提示用户,连接服务器成功。5.2显示主窗口。5、连接服务器失败5.1提示用户连接失败5.2重新进入第2步。32、客户端登录(本地)表2.122客户端登录(本地)用例主路径可选路径1、运行程序,显示登录窗口2、输入用户名3、点击“登录按钮”,登录成功3、“登录”失败如果登录的用户名为空,重新进入第2步。4、连接服务器5、连接服务器成功5.1提示用户,连接服务器成功。5.2显示主窗口。5、连接服务器失败5.1提示用户连接失败5.2重新进入第2步。3、客户端登录(远程)表2.123客户端登录(远程)用例主路径可选路径1、侦听到服务器发来的消息2、解析消息3、消息为远程主机登录3.1更新本地的在线用户列表3.2显示本地的在线用户4、客户端发送聊天信息表2.124客户端发送聊天信息用例主路径可选路径1、输入聊天信息2、点击“发送”按钮或直接按回车键2、没有输入消息2.1重新回到13、在用户界面上显示发出的信息4、保存聊天信息至相应的聊天记录中45、客户端接受聊天信息表2.125客户端接受聊天信息用例主路径可选路径1、输入聊天信息2、在用户界面上显示收到的信息3、保存聊天信息至相应的聊天记录中6、客户端关闭表2.126客户端关闭用例主路径可选路径1、点击主窗口右上角的红叉2、发送退出信息给服务器2.13整体框架设计结合自己的编程经验,设计出的聊天模式如下所示。服务器客户端A客户端B客户端CTCP协议通信TCP协议通信TCP协议通信UDP协议通信UDP协议通信UDP协议通信图2.131聊天模式5如上图所示,服务器与客户端之间采用TCP/IP协议通信,客户端与客户端之间通过UDP通信。服务器专门负责记录当前在线用户列表,并能进行广播。服务器持续保持对端口的侦听状态,每当有主机上线时,首先连接至服务器,服务器收到连接后,将