Linux基于TCP的网络聊天室软件131.doc_第1页
Linux基于TCP的网络聊天室软件131.doc_第2页
Linux基于TCP的网络聊天室软件131.doc_第3页
Linux基于TCP的网络聊天室软件131.doc_第4页
Linux基于TCP的网络聊天室软件131.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淮 海 工 学 院 计算机工程学院课程设计报告设计名称: Linux程序设计 选题名称: 基于TCP的网络聊天室的设计与实现 姓 名: 姓 名: 姓 名: 专业班级: 软件工程 系 (院): 计算机工程学院 设计时间: 2016.11.162016.12.7 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的Linux程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对Linux程序设计的理论、方法和基础知识的理解,掌握使用C语言进行Linux程序设计的基本方法,提高运用所学知识分析实际问题、解决实际问题的能力。2课程设计任务与要求:2.1 课程设计要求课程设计选用VIM、GDB和SecureCRT作为开发平台以提高开发效率,尽可能熟练掌握其开发环境。采用结构化程序设计技术进行系统的分析设计,在Visio中画出系统功能结构图和程序流程图,并将相应的图例说明复制到设计报告中。通过这次设计,要求掌握以下内容:1)Linux C编程工具:GCC和GDB2)文件I/O操作3)文件属性及目录操作4)终端控制与信号处理5)进程控制6)进程间通信7)流式套接字编程8)线程管理2.2 课程设计任务(大作业课题一)1)课题名称:基于TCP的网络聊天室的设计和实现。2)内容描述:实现目标:一个在Linux下可以使用的聊天软件,要求实现如下功能:l 采用Client/Server架构l Client A 登陆聊天服务器前,需要注册自己的ID和密码l 注册成功后,Client A 就可以通过自己的ID和密码登陆聊天服务器l 多个Client X 可以同时登陆聊天服务器之后,与其他用户进行通讯聊天l Client A成功登陆后可以查看当前聊天室内其他在线用户Client Xl Client A可以选择发消息给某个特定的Client X,即“悄悄话”功能l Client A 可以选择发消息全部的在线用户,即“群发消息”功能l Client A 在退出时需要保存聊天记录l Server端维护一个所有登陆用户的聊天会的记录文件,以便备查可以选择实现的附加功能:l Server可以内建一个特殊权限的账号admin,用于管理聊天室l Admin可以将某个Client X “踢出聊天室”3)附加功能:l 文件传输3课程设计说明书3.1 需求分析随着科学技术和社会的不断发展,计算机产业越来越发达。人们对于电子信息产品的需求越来越大,在这样一个信息时代,交流的方式日趋多元化和网络化。通信产业的发展非常迅猛,现在的科技已经可以实现很多种网络交流方式和信息传播方式,但是聊天室一直是最基础之一。聊天室技术仍然是我们学习的基础和重点。本次课题将全面的分析与设计一个网络聊天室。网络聊天室现在已经有相当成熟的发展了,QQ,微信等主流的聊天工具是这项技术的代表。在当下成熟的编程环境下,聊天室的设计与实现是一个重要的基础练习。下面将简要介绍一下网络聊天室的特点:1) 便捷性:摆脱了传统的通信方式,利用网络的廉价性,可以使用户更加自由地相互交流。2) 安全性:网络环境下,用户可以针对地去了解自己想要了解的信息,交流时可以使用虚拟的身份,一定程度上很好地保护了用户的个人隐私信息。3) 实时性:用户只要与想要通信的另一方取得联系,即可想面对面对话一样交流。3.2 概要设计本次试验设计一个网络聊天室,该软件采用Client/Server架构。聊天室的功能主要有:1) Client A 登陆聊天服务器前,需要注册自己的ID和密码2) 注册成功后,Client A 就可以通过自己的ID和密码登陆聊天服务器3) 多个Client X 可以同时登陆聊天服务器之后,与其他用户进行通讯聊天4) Client A成功登陆后可以查看当前聊天室内其他在线用户Client X5) Client A可以选择发消息给某个特定的Client X,即“悄悄话”功能6) Client A 可以选择发消息全部的在线用户,即“群发消息”功能7) Client A 在退出时需要保存聊天记录8) Server端维护一个所有登陆用户的聊天会的记录文件,以便备查3.3 详细设计1) 功能结构图:2) 程序流程图:l 注册:l 登录:l 传送文件:l 发送消息:4课程设计成果4.1 主要模块设计1)注册模块:client.c:server.c:check.c:此截图是在注册时系统判断注册用户是否重名的模块:2)发送消息模块:client.c:创建线程处理消息队列。这是消息处理函数:sever.c:发送给所有人的消息处理:发送给指定用户的消息处理:display.c:显示发送的消息:4.2 运行结果服务器端:服务器端查看连接用户列表:客户端一:客户端一发送消息给所有人:消息显示界面:客户端一查看在线用户列表:客户端一向客户端二传送文件:客户端二接收文件:客户端二退出:服务器端显示退出消息:服务器端踢出客户端一:5.课程设计心得本次实验实现的网络聊天室使用了Linux程序设计的很多重点的基础知识。这是一次非常综合的程序设计。我负责注册和登录界面的功能,这次实现的网络聊天室还有很多不足之处,主要是用户使用的友好性的设计。程序还需要大量的测试才能达到人机友好性的标准。本次CSDN上一位博主的原创代码。使用结构化软件设计的思路,采用瀑布开发模式, 6次迭代,其中有五个重要的迭代模型和七个基线模型产生。另外,在注册和登录模块中,用户信息文件是不能随便写入的,只有读取到注册标志位时,才能开放用户信息的文件的写入权限,这里用到了文件操作中的文件功能库中的函数去实现。另外,在消息显示模块中,聊天日志文件是关闭所有文件权限的,用到文件操作权限时才能开放,用完则归还权限。对于客户端的连接、消息的处理和文件传送,我都是使用线程管理技术去实现的,这样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论