软件工程在聊天小程序中的应用

上传人:汽*** 文档编号:476026913 上传时间:2023-03-16 格式:DOCX 页数:14 大小:669.19KB
返回 下载 相关 举报
软件工程在聊天小程序中的应用_第1页
第1页 / 共14页
软件工程在聊天小程序中的应用_第2页
第2页 / 共14页
软件工程在聊天小程序中的应用_第3页
第3页 / 共14页
软件工程在聊天小程序中的应用_第4页
第4页 / 共14页
软件工程在聊天小程序中的应用_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《软件工程在聊天小程序中的应用》由会员分享,可在线阅读,更多相关《软件工程在聊天小程序中的应用(14页珍藏版)》请在金锄头文库上搜索。

1、软件工程在聊天小程序中的应用一、背景背景及意义计算机网络技术开展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比方说大家所熟知的腾讯QQ 、微软的 MSN 、移动的 Fetion 等,都是做的比较成功的实时聊天工具。 一个简单的聊天室 , 从程序员的观点来看就是在多个I/O 端点之间实现多对多的通信。基于 SOCKET 的局域网通信是一种灵活的、易于实现的、低本钱的方法。 它可以运行在各种使用 TCP/IP 协议作为通讯协议的网络上。 而在 SOCKET API的帮助下,开

2、发基于 SOCKET 的局域网通信软件也是易于实现的。二、可行性研究可行性分析聊天小程序主要解决在客户端于客户端的信息交换和客户端于效劳器的信息交换及效劳器的信息处理上的管理。此程序主要分为两局部:效劳器端和客户端。效劳器端用于提供一个网络端口,等待客户端发出请求,登录到此效劳端,然后进展网络通讯和消息的转发;客户端可通过效劳器端的 IP 地址发送连接请求,然后登陆聊天室。在效劳器端的成员列表栏中会显示在线的所有人,有人退出聊天室,成员列表会自动除名。效劳器端同时也提供了成员之间的私聊功能,此时效劳器端作为一个转发站,进展消息的转发。整个程序的主体使用了 CSocket类的方法,实现了网络通讯

3、聊天。先启动效劳器端聊天程序,这是聊天效劳器需要指定一个端口号,客户端那么根据这个端口号以及效劳器的网络地址与效劳器进展通信。在这里,把端口号成为“聊天频道 。效劳器启动后将在这个指定的端口号中等待客户的连接。对于公共聊天室,效劳器对客户的数目不做任何限制。而对于私人聊天室,每个聊天频道那么只能允许两个客户互相连接,使得一方发送的信息只能到达对方的主机中。这里的效劳器提供的是公共聊天效劳。通过分析发现,该程序完全可以通过Visual C+ 中 MFC 完成。(此程序测试均在同一台主机上完成。)三、需求分析2.1 设计目的综合运用本课程及计算机网络的相关知识设计并实现一个网络应用程序,以 Vis

4、ual C+作为开发平台,通过实践复习稳固课堂所学的理论知识,提高对所学知识的综合应用能力。2.2 设计要求采用客户 /效劳器模式, 分为客户端程序和效劳器端程序。 效劳器采用 WINSOCK I/O模型中的任一种,支持多个客户同时在线聊天。客户端程序和效劳器程序通过网络交换聊天字符串内容, 效劳器窗口的列表框中显示当前在线用户, 支持客户端之间的私聊 可UDP 打洞直接建立端端连接课程设计要求设计并编程完成两个方面的内容: 首先建立一个使用 TCP 协议的聊天 室效劳器,这个效劳器可以同时支持多个用户的在线聊天;其次设计一个可以和效劳器通信的聊天室客户端。2.3 功能要求支持多个客户端的连接

5、,在效劳器和多个客户端之间进展数据传输;接收客户端发送的消息,并显示在一个列表框中;在用户连接上后有提示,显示出连接的用户名字;发送信息时可以显示聊天的所有记录;2.4 系统主要功能和主要功能描述:总体功能 :1、多人会话。此程序分为效劳器端和客户端,当客户端要进入聊天室的时候,就必须通过网络连接到效劳端,以实现和其它客户端的通讯功能。其中最简单的一种通讯方式就是多人会话,运用多线程同时对多个用户的信息进展监听,效劳器通过转发消息,让所有人都可以得到消息,实现多人会话。2、 一对一会话。 此程序的效劳器端除了能够提供多人会话的功能外, 还提供了私人聊天功能,可以实现一对一的聊天。就是在消息转发

6、的时候,私聊的消息只发给私聊的对象,而其他人看不到此消息,但是此消息会通过效劳器端转发,然后再到达目的客户端。?3、个性化的昵称。为了区别用户,此程序还允许用户可以自定义个性化的昵称。在用户登录的时候, 用户可以为自己设定一个昵称, 以便在多人会话的时候作为身份识别。同时效劳器端也会以此昵称作为客户端的登录身份,效劳器管理员,同样也显示在其他用户的在线列表栏中。4、效劳器登陆。效劳器端开启之后处于监听状态,多线程工作,承受每一个用户的连接请求。而客户端只需输入效劳器端的 IP 地址即可,端口在效劳器端自动生成。效劳器端聊天程序必须能够做3 件事情:( 1) 效劳器聊天程序要在待定的端口上等待来

7、自聊天客户的连接请求, 并且需要维护一个客户连接表,以记录所有成功的连接。( 2) 效劳器聊天程序要及时承受从各个聊天客户发送过来的信息, 然后把这些信息转发到一个或多个客户连接。对于公共聊天室,效劳器将把承受到的信息向除源端外的所有客户发送过去。( 3) 效劳器还要监控这些连接的状态, 在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。这些要求可以通过 CSocket 类提供 的功能实现。 从 CSocket 派生出 两个类CListenSocket和CClientSocket它们分别用来侦听客户的连接请求和建立与客户的连接。效劳器只需要一个侦听套接字CListenSock

8、et然后根据客户的连接请求动态创立客户套接字CClientSocket客户套接字的数量是不可预知的,因此需要一个列表来记录。MFC的 CPtrList 类就能实现这种功能。具体功能由客户端与效劳器端两局部实现客户端聊天程序需要完成以下几个功能:( 1) 客户端聊天程序要负责建立和维护与效劳器的连接,通过获取用户的设置尝试与效劳器的连接,并且随时检测连接的状态。( 2) 客户端聊天程序要把用户输入的信息及时发送到聊天效劳器。一般情况下,当用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才能及时地满足用户的交互需求。( 3) 要随时准备好承受来自效劳器的信息,随时把承受到的信息显

9、示出来,让用户及时看到对方的响应。( 4) 在用户退出聊天过程是要关闭与效劳器的连接。比较好的做法是提前通知效劳器或者直接给效劳器发送一条退出通知,使得效劳器能够及时掌握客户端的连接状态,把对方客户的退出信息及时发送到对等实体上。客户端聊天程序需要使用一个通过CSocket类派生出来的CChatSocke膜来实现该套接字用来发送一个与效劳器的连接请求和维持与效劳器的连接,发送和接收聊天信息,完成上述各项功能。三、总体设计3.1 实验平台介绍Visual C+(简称VC)是Microsoft公司推出的目前使用极为广泛的基于 Windows平台的 C+可视化开发环境。VC基于C, C+语言,主要由

10、是MFC组成,是与系统联系非常 严密的编程工具, 它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在Windows平台无所不能。VC主要是针对 Windows系统,适合一些系统 级的开发,可以方便实现一些底层 的调用。在 VC 里边嵌入汇编语言很简单。当对系统性能要求很高的时候,可用 VC 开发。 VC 在多线程、网络通信、分布应用方面,有着 不可比较的优势。3.2 设计流程图根据对用户的要求及功能设置可以得到以下的流程图3.1,用户首先启动客户端,登陆效劳器并向效劳器发送信息,启动效劳器,效劳器等待客户要求并向客户反应在 线用户信息,用户向效劳器发送信息,效劳器处理用

11、户的数据,然后用户开场聊天。 客户端的聊天分为对所有人的信息和私聊的信息,该信息应通过程序控制分别进展处 理。图3.1设计流程图图4.1登陆效劳器界面启动效劳器:在登陆页面的环境下,点击启动效劳器按钮,即可创立一个新的效劳器, 效劳器界面如图4.2所示。图4.2启动效劳器界面客户端登陆:在启动客户端效劳端的时候,会出现图4.3的界面,该界面为客户端的连接界面。Clnat -C 1 i fi=n+鸵对3 I聊天交LF ;连授在虢用尸列表薰井能送图4.3登陆客户端界面图4.4为用户蔡宇连接效劳器界面,在输入用户名蔡宇并点击确定后,出现如下界面:图4.4蔡宇登陆效劳器图4.5为用户龚小龙的连接界面,

12、在龚小龙连接后,蔡宇和龚小龙用户同时出现在用户列表内:图4.5龚小龙登陆效劳器图4.6为用户田伟的连接界面,在田伟连接后,蔡宇,龚小龙和田伟用户同时出现在用户列表内:底 ChatClient昵新:田传聊天室工P :127.0.0.1连接在线用户列表祭于芦小龙 田伟1抄一。口 1正在隹接服多器一一成功连接朋务器口.祐聊发送离开I图4.6田伟登陆效劳器效劳器显示:在蔡宇,龚小龙,田伟进入聊天室后的界面为图47:开场聊天,群聊:客户端发送信息时的界面为图4.8图4.8聊天界面图4.9为私聊界面。蔡宇与龚小龙私聊:点击私聊选项,并发送私聊内容图4.9蔡宇私聊界面图4.10为蔡宇私聊界面,龚小龙和蔡宇私

13、聊,蔡宇能看到龚小龙发送的内容:图4.11为田伟的界面显示,田伟看不到蔡宇和龚小龙的私聊内容:图4.11非私聊对象界面5设计的总结和体会该次课程设计的制作我主要是参照了图书馆内的相关书籍,找到一个类似的程序, 然后按照书上的内容一步步的做出来了,虽然这个程序算不上是我自己写出来的,但通 过这样的一个过程,还是让我学会了很多东西,也算能比较熟练地掌握MFC这一个软件了,这算是一个不小的收获吧,而且,在做这个程序的过程中,让我认识到了在做这 样程序中,遇到解决不了的问题与同学的讨论时很重要的,譬如可以以运行,但是就是无法出现连接的显示和状态。最后与同学讨论后,才知道是效劳器端有了错误,没有设置自己

14、的 IP 地址,然后对于客户端进展了一番修改,才终于出现了上述的结果。虽然没有彻底做的出来,但是还是比较开心的,因为自己知道了哪里缺乏,哪里不可以,可以在以后多多的做练习来充实自己。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定方案,怎么样去实现这个方案,并掌握了在执行过程中怎么样去克制心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏困难,勇往直前!我以后还是需要多多的练习,多多的勤奋,这样才有可能让自己有信心,有动力,让自己不至于懂的太少而怯场,因为不懂而不会做,相信自己以后会编写出让自己满意的程序和软件的。此程序的功能到达了之前预想的可能,通过效劳器端的消息转发,实现了多用户之间的群聊,和单个用户之间的私聊,完整了一个简单的网络聊天软件的功能。通过此次的实验,也同时让我对于 CSocket 网络聊天类的使用有了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号