基于linux的实时通信软件设计(编辑修改稿)内容摘要:

是否是是是否 图 2 登录模块流程图 5 用户登录需输入相关信息,经过相关的检测后,方可登录。 登陆后可查看群聊信息,且可与其他人进行聊天 服务器模块 开 始创 建 套 接 字 S o c k e t套 接 字 绑 定 到 本 地端 口套 接 字 接 听 客 户 端请 求是 否 有 链 接 请 求返 回 套 接 字 进 行 通信保 存 套 接 字 中 的 内容I P 链 接 是 否 正 常启 动 转 发 消 息 的 线程读 取 套 接 字 中 得 内容保 存 所 有 在 线 用 户名聊 天 是 否 启 动将 在 线 用 户 名 单 与“ 聊 天 启 动 ” 标 志写 入 输 出 流将 消 息 转 发 给 所 有在 线 用 户结 束信 息 写 入 输 出 流显 示 用 户 下 线 信 息是是是否否否 图 3 服务器模块流程图 6 该服务器界面用于显示用户上线与下线的信息,不可用于聊天,是用于将客户端群聊时发送的信息转发给每一个在线用户,处于一个承接的作用。 消息格式化模块 消息格式化是将用户的对 应信息合成固定形式进行传送。 开 始对 应 用 户 传 入 消 息格 式 化 类用 户 名转 发 的 消 息标 志消 息 格 式 化 类将 信 息 整 合 成 固 定格 式 传 送“ 【 用 户 名 + : 】 ”转 发 的 消 息结 束 图 4 消息格式化模块流程图 7 群聊模块 用户登陆以后,可与显示在线的任何用户进行聊天,也可与在线用户一起进行群聊。 开 始创 建 套 接 字写 入 服 务 器 端 口 号与 I P向 服 务 器 发 起 连 接套 接 字 中 内 容 流 入对 象 输 出 流启 动 客 户 端 线 程读 取 套 接 字 中 的 内容检 查 标 志聊 天 已 启 动 发 送 消 息 启 动在 线 用 户 列 表 添 加该 用 户服 务 器 转 发 的 信 息显 示 到 各 用 户 聊 天窗 口结 束 图 5 群聊模块程序流程图 8 4. 调试及测试 调试结果 1,启动 SSH Secure Shell 软件后,将程序进行编译: 图 6 编译程序 ,2,编译成功后,将服务器打开: 图 7 打开服务器 3,打开服务器以后,需 输入用户名称,即可进入聊天室进行聊天: 图 8 准备进行聊天 9 4,用户进行聊天: 图 9 用户聊天界面 a 图 10 用户聊天界面 b 调试结果分析 这是一个聊天室程序,可以实现群聊的功能,即当某个客户发出消息后,服务器和其他个客户端都能收到此消息。 且能够显示客户端的用户名。 但客户端退出聊天室后,服务器和其他在线客户端会有提示。 实现群聊的机制是:当某个客户端需要发送消息是,它将此消息发送给服务器,服务器再将此消息转发给各客户端,各客户端之间是无连接的,即相互之间不能直接通信。 因此,在服务器中,有两个线程,主线程用来监听是否有客户端登录服务器,若有,建立与其连接的套接字,并存入在线客户序列里,辅助线程是接收转发线程,其依次读取个客户端,看是否有消息送达,若有,取出,并转发给各其他客户端。 在客户端也有两个线程,主线程用来向服务器发送消息,辅助线程用来接收服务器发出的消息。 10 5. 设计总结 转眼间 为期一周的嵌入式系统开发 课程设计转眼就结束了,这次课程设计,我学会了许多课本上学不到的东西,同时也加强了我的动手、思考和解决问题的能力 以及学会了相互帮助,相互团结的团队精神 ,受益匪 浅。 从前的学习过程过于浮浅,只是流于表面的理解,而现在要做课程设计,就不得不要求我们对所用到的知识有更深层次的理解。 因为课程设计的内容比及书本中的理论知识而言,更接近于现实生活 ,而理论到实践的转化往往是一个艰难的过程,它犹如一只拦路虎, 横亘 在我们的面前。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一 次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 感谢王 老师的悉心教导和认真帮助,在我们遇到各种困难时给予我们最深刻的指导,让我们能够较顺利的完成此次课程设计。 11 参考文献 ( 1) 华清远见嵌入式培训中心编著 《嵌入式 Linux 应用程序开发》(第二版)人民邮电出版社 20xx年 7 月 ( 2) 谢小云编著《嵌入式系统综合项目》江西理工大学应用科学学院出版社, 20xx 年 ( 3) 王天苗,魏洪兴编著《嵌入式系统设计 与实例开发》(第三看版)清华大学出版社, 20xx 年 12 附录 /******* 客户端程序 ************/ include include include include in。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。