




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux 下的网络聊天室 概要设计说明书 V1.0(版本号) 拟 制 人:梁海宏,李林,王鹏,汤昆桦 审 核 人_ 批 准 人_ 二零零九年九月二日 项目名称 概要设计说明书 1 概要设计说明书 1引言 1.1 编写目的 本说明书的编写主要是为了加强对 Linux 系统下的编程的各种知识点的整合与灵活运 用,让我们更加熟悉 Linux 下的编程操作。 1.2 背景 a.软件名称:Linux 下的网络聊天室 b.任务提出者:吴工 项目开发者:梁海宏,汤昆桦,王鹏,李林 项目用户:普通 Linux 用户 2总体设计 2.1 需求规定 本系统主要功能在于实现多个客户端与服务器端之间的信息传递与文件传输功能 2.1.1 系统功能 系统主要实现 4 大聊天室功能: 1.注册与登录系统 2.公聊 3.私聊 4.文件传输 2.3 基本设计概念和处理流程 一、注册、登陆: 客户端 客户端的输入和消息的显示要使用 2 个终端,一个 client,一个是 Display。Client 终端 为输入的界面,在这个界面里,新建一个线程来接受服务器端发来的消息,再添加时间信 息,并将这些信息写入文件,然后给 Display 进程发送一个消息,Display 进程接到消息, 就去读取文件,并将这些数据显示在 Display 终端。 打开客户端 Display 终端界面,用 lseek 将内部指针指向文件末尾,等待 Client 终端里 的线程将消息写入文件。一旦有消息过来,就去文件里读取数据并打印在 Display 终端。 打开客户端 Client 终端界面,有 3 个菜单,一个注册、一个登陆、一个退出。 注册: 输入 1 为注册,客户端提示用户输入/用户名/ 密码/等信息,使用结构体保存用户输入 项目名称 概要设计说明书 2 的信息,将结构体发送给服务器端。 这里,需要使用协议将用户信息封装在结构体里,这个协议为 reg,服务器端根据这个 协议来执行相应的功能。 等待服务器执行完后,客户端会接收到成功或者失败的信息。并返回主界面。 结构体的成员变量有 4 个,一个是协议,一个是客户端的用户名,一个是消息,一个 是长度。 消息就是这些信息的组合,用户名和密码的结合,中间使用$来分离。 注册成功,退出程序。重新打开程序即可登陆。 注册的时候与服务器的交互过程: 请输入你的用户名: hello 请输入密码: 55555 you pass : 55555 请再次输入密码: 55555 pass you : 55555 正在等待服务器应答. 接到服务器发来的信息:注册成功 ! 登陆: 输入 2 为登陆,分别输入用户名和两次输入密码,如果两次密码不同,则需要重新登 陆,登陆次数最多为 3 次,3 次输错,则退出程序!输入完毕,又将用户名和密码保存到 结构体里,将结构体发到服务器端,等待服务器端的验证。 这里,也需要对用户名和密码信息使用协议来封装成结构体,这个协议为 login,服务 器端根据这个协议来执行相应的功能。 在 Client 终端,当登陆成功后,等待用户输入,默认为 all,就是给所有人发送消息, 使用协议来传送数据,服务器端根据协议来分辨客户端想做什么。不管做什么事情,都会 得到某种成功或者失败的提示信息。 客户端发送给服务器端使用的协议: 1. all$msg,为给所有人发送消息。 2. 直接输入 view$获得在线用户列表。 3. who$msg,给用户名为“who”的用户发送私聊消息。 4. trans$who$filename 将文件传输给 who。 5. reg 为注册。 6. login 为登陆。 登陆的时候与服务器的交互过程: 请输入你的用户名: helllo 请输入密码: d 正在等待服务器应答. 接到服务器发来的信息:登录失败 ! 您还有 2 次机会,之后将退出程序! 项目名称 概要设计说明书 3 请输入你的用户名: hello 请输入密码: 55555 正在等待服务器应答. 接到服务器发来的信息:登录成功 ! 退出: 关闭 socket,退出程序。 服务器端 服务器端建立好 socket,等待连接,当有客户端连接服务器的时候,服务器接收连接, 并接受客户端发送过来的消息,根据接收到的结构体所携带的协议来做相应的功能。 如果协议为 reg,则为客户端注册,首先将发送过来的结构体,提取用户名和密码,然 后需要对用户名合法性检验,验证之后如果用户名合法则将用户信息保存到文件中,合法 性的规则包括用户名不能重复和不能使用 all 等协议作为用户名,并且用户名和密码都不能 为空。如果注册成功,服务器端发送一个消息给注册的客户端,同样将消息保存在一个结 构体里。如果失败,也给客户端发送一个消息,您输入的用户名不能为 all 或者用户名 “who”已经存在。 如果协议为 login,则将用户名和密码信息提取,再遍历文件里的用户名和密码,直到 验证成功为止,如果验证成功则对所有在线的用户发送一条消息:提示某某用户登录成功; 如果失败则只给登陆失败的客户端提示登录失败,并给出原因,用户名不存在或者用户名 或者密码输入错误。并跳转到相应的代码执行其他功能,成功则等待发送客户端消息,失 败则关闭 socket 并结束线程。 这里从服务器端发回给客户端的消息使用 sprintf 到一个字符串来发送。 二、私聊: 客户端 客户端在登陆成功之后,在发送消息之前可以先查看在线用户列表,查看用户列表使 用 view$。 接着,可以使用 who$msg 的形式发送私聊信息,意味着,这个消息是发送给 who 的。 或者,先使用 who$来切换到发送私聊消息,这个时候,你不需要加上协议,即可给 who 这个用户发送消息。 这些消息都加上协议 who 来封装成结构体,再发送给服务器端。 服务器端 如果是私聊,则根据客户端要发送到哪个用户名的用户,到链表里取得该用户名的客 户端信息,服务器再发送给相应的接受信息的客户端。接受信息的客户终端就会先将信息 保存到聊天记录的文件里,并显示接收到的信息,并且信息前面会显示相应的提示符。 样式为: Fri Sep 4 14:19:53 2009 hello 发来私聊消息:nihao 三、公聊: 客户端 客户端在登陆成功之后,默认就是 all 协议,可以直接发送公聊信息,不需要加上任何 项目名称 概要设计说明书 4 的协议,实现对所有人的人进行聊天。 命令为 all$msg,给所有人发送消息。 或者先使用 all$来切换到给所有人发送消息,切换后,不需要加上协议即可发送了。 这些消息都根据协议来封装成结构体,再发送给服务器端。 服务器端 如果服务器端接收到的发送协议为 all,则是公聊,使用 for 循环来发送给链表里 的每个在线用户,每个在线用户的 Display 终端都会显示该信息。 样式为: Fri Sep 4 14:19:19 2009 hello 发给所有人:nihao,ni shishei 四、文件传输: 客户端 如果某个客户端想发送文件给其他客户端,则直接使用命令 trans$who$filename。Filename 包括本地的路径和文件名。 Trans 为协议,就是标志为传输文件。 Who 就是发送给谁。 Filename 就是要发送的文件在本地的文件名。 服务器端 当发送到服务器的时候,根据协议,先给接收的客户端发送一条消息为 trans 标记:某 某用户给您发送了*文件,是否接受,Y 接受 N 拒绝接受。当客户端按下 N,则返回一条 消息给服务器端,服务器端同时告诉发送的客户端,对方拒绝接受文件。发送端可以接着 继续做其他的事情,私聊或者公聊。当接收的客户端按下 Y,并立即接受保存的路径和文 件名。输入完毕,就可以接受文件了。客户端返回一条消息给服务器端,服务器端同时返 回一条消息给发送的客户端,告诉客户端对方同意接受文件,这时候,文件开始传输,发 送完毕后,发送的客户端会显示传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年消防工程师资格认证考试试题及答案
- 2025年企业管理咨询师考试试卷及答案
- 2025年计算机视觉工程师考试试题及答案
- 2025年药物化学与药理学考试试题及答案
- 山水度假村客房委托经营管理与服务合同
- 垃圾处理场排放标准提升补充协议
- 文艺电影替身艺术风格演绎协议
- 家庭财产管理与责任风险防范合同
- 高效模具验收与后期优化服务补充协议
- 《Excel入门教程》课件
- 安徽省水环境功能区划
- 检验报告单的正确解读方法(45张)课件
- 微信小程序开发与实战(微课版)-教学大纲
- 还建房买卖合同
- 学习动机精品课件
- 汽车安全工程-教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案合集最新课件汇编
- (完整版)反应釜课件
- 群体改良和轮回选择课件
- D502-15D502等电位联结安装图集
- 牛排西式餐厅管理餐饮培训资料 豪客来 服务组排班表P1
- 一文看懂友宝在线招股书
评论
0/150
提交评论