ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:118.03KB ,
资源ID:13050580      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13050580.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络编程技术课程设计报告Word文档下载推荐.docx)为本站会员(wj)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络编程技术课程设计报告Word文档下载推荐.docx

1、3 分析和设计43.1 系统分析及设计思路43.2 主要控件的功能53.3 程序流程图6(一)流程运行框架6(二)服务端7(三)客户端94 具体代码实现124.1 服务器124.2 客户端185 课程设计总结245.1 程序运行结果或预期运行结果245.2 设计结论25参考文献27致谢271 前言聊天软件由客户端和服务器两部分构成,服务器充当“中转者”的职能,客户端将自己的消息首先发给服务器,服务器再根据需要将它们转发给其他客户端。聊天程序一般采用互连网中继聊天协议,即双方即时通信的过程中必须通过第三方中转,第三方为服务器,聊天程序一般采用UDP 协议,在基于 UDP 协议的基础上,聊天过程中

2、消息的发送必须遵守某一种约定,这种约定规定了”进入聊天室”,”发送聊天信息”和”离开聊天室” 数据传输格式,中转者(服务器)通过接收客户端不同的数据格式来进行判断消 息发送者欲进行的操作,然后对消息进行处理后再进行转发,服务器根据接收 到的不同消息格式做出不同的处理。2 需求分析2.1 任务和要求本次课程设计内容任务是简单群聊软件的设计与实现。三人以上为一组, 其中一个同学为群聊软件的服务器端,另外同学为群聊软件客户端,服务器开启后公布其 IP 地址和端口号,客户端用服务器的 IP 地址和端口号进行登录, 观察服务器与客户端的显示的结果,然后由客户端发送群聊消息,观察服务器与各客户端的显示结果

3、。具体要求如下:1. 采用客户端服务器(C/S)结构,聊天室软件由客户端和服务器两部分构成,即创建两个工程,服务器(SelfRoom)和客户端(SelfChat)。2. 服务器的对话框界面应具有聊天室 IP、端口、开启、关闭、聊天室动态、在线用户等基本内容,而客户端的对话框界面应具有昵称、聊天室 IP、端口、登录、离开、聊天记录、在线好友等基本内容,添加相应的成员函数,使程序能正常运行。3. 聊天程序采用 UDP 协议,基于 UDP 协议的聊天过程中遵守一种约定, 这种约定规定了“进入或离开聊天室”和“发送聊天信息”数据传输格式,服务器作为“中转者”通过接收客户端不同的数据格式来进行判断消息发

4、送者的欲进行的操作,然后对消息进行处理后再进行转发。2.2 应实现的功能此次课程设计内容是群聊软件的设计与实现,采用 MFC 类编程。下面介绍一下服务器和客户端所实现的功能。服务器的界面中有管理员、聊天室 IP、端口、聊天室动态和在线用户列表, 还有“开启”、“关闭”、“退出”按钮。运行服务器时,先进行管理员、聊 天室 IP、端口的配置,点击“开启”按钮后,聊天室动态的文本框里会显现“聊天室开启成功”等消息以及当时得时间,便可等待成员的加入;当有成员 加入时,也会有相应的提示信息,用户列表也会及时更新;当客户端发来消息, 服务器会将此消息转发给每一个成员;当列表中的所有成员都离开时,服务器 可

5、点击“关闭”,即关闭聊天室。客户端的界面有您的昵称、聊天室 IP、端口、聊天文本框、在线好友列表, 还有“进入”、“离开”、“发送”按钮。运行客户端时,先进行昵称、聊天 室 IP、端口的配置,点击“进入”按钮,与服务器进行了连接;连接成功后, 可发送聊天消息点击“发送”就能将消息发送到服务器,让服务器进行处理, 发送的信息会显示在聊天框里,每条消息前面还附有发送消息时的时间,在线 好友列表中会显示已进入聊天室的成员,可以与他们进行群聊,由于这只是简 单的群聊软件,所以只能发送文字信息,不具备发送表情、文件等高级功能; 当有成员加入或离开聊天室时,聊天框内会有提示信息,在线好友列表也会即 时更新

6、;当客户端想离开时,可以点击“离开”按钮,即可退出聊天室。2.3 界面及控件变量(一)服务器运行界面,如图 2.1。26图 2.1 服务器界面图(二)客户端运行界面,如图 2.2。图 2.2 客户端运行界面图3 分析和设计3.1 系统分析及设计思路本次聊天软件采用 MFC 编程,需要创建 2 个工程,分别是客户端工程SelfChat 和服务器工程 SelfRoom,由于本次软件需用到套接字类,所以在创建工程的时候需要选择“Windows Sockets”复选框,并都基于基本对话框。在制作服务器的时候需要添加两个基于 CSocket 的套接字:CClientSocket(用来监听)和 CServ

7、erSocket(为每个加入聊天室的客户端生成一个相应的对象与之通信),另外添加一个 C+结构体 tagHeader(用于客户端和服务器之间辨识消息类型的)。在制作客户端时添加一个基于 CSocket 的套接字类 CClientSocket(用于连接服务器通信),和服务器一样要添加一个 C+结构体tagHeader。整个流程中的事件时序如下:1. 服务器配置管理员、聊天室 IP 以及端口后,单击“开启”按钮,此时服务器主动调用 Listen()开始监听。2. 客户端配置昵称、聊天室 IP 以及端口后,单击“进入”按钮,此时客户端向服务器发起连接 Connect()请求,若请求被接收,则紧接着发

8、送会话消息。3. 服务器的 CServerSocket 类接收请求并触发 OnAccept()事件,该事件过程创建对应请求方客户端的 CClientSocket 类对象并添加到 Socket 队列。4. 更多成员客户端加入时,服务器重复步骤 3。5. 某个成员(客户端)要发送聊天消息时,在发送信息文本框中编辑文字, 单击“发送”按钮向服务器发出消息。6. 某个成员(客户端)发来的消息到达服务器,触发服务器 Socket 队列中对应该客户端 CClientSocket 类对象的 OnReceive()事件,对发来的消息进行处理。7. 服务器上对应该客户端的 CClientSocket 类对象,根

9、据消息头 tagHeader 结构中的 type 字段辨别消息类型:若 type=LOGIN_IO,则表示有新成员加入, 用广播方式通知所有其他成员客户端,并调用服务器 UpdateUser()更新服务器用户列表;若 type=SEND_MESSAGE,则表示这只是普通的成员的发言信息, 直接广播转发该消息就可以了。8. 服务器发出的消息到达客户端,触发客户端本地 OnReceive()事件,客户端本地 Socket 根据消息头 tagHeader 结构中的 type 字段辨识消息类型:若type=LOGIN_IO,则表示有新成员加入或已有聊天成员下线退出,于是调用客户端 UpdateUser

10、()函数更新本地用户列表;若 type=SEND_MESSAGE,则表示这是聊天室中其他成员发来的消息,调用 GetMsgFromRoom()函数接收之后显示在客户端的屏幕上。9. 某个成员要下线时,单击“离开”按钮,关闭本地 Socket。10. 一旦某成员退出,关闭了自己客户端程序的本地 Socket,就会触发其在服务器上的 Socket 队列中对应的 CClientSocket 类对象的 Onclose()事件,由CClientSocket 类对象发消息通知其他成员有人退出,并调用 UpdateUser()更新服务器用户列表。11. 当最后一个成员离开聊天室后,管理员可单击“关闭”按钮关

11、闭服务器。3.2 主要控件的功能服务器主要控件的功能见表 3.1,客户端的主要控件功能见表 3.2。控件功能“管理员”文本框配置管理员名称IP 控件配置聊天室 IP“端口”文本框配置聊天室端口“聊天室动态”只读文本框显示聊天室的动态,包括聊天室开启、关闭的提示信息,成员登录、离开的提示信息以及聊天消息“用户在线”列表框显示已进入聊天室的成员“开启”按钮开启聊天室“关闭”按钮关闭聊天室“退出”按钮退出表 3.1 服务器的主要控件的功能“您的昵称”文本框配置昵称“在线好友”列表框“聊天”只读文本框“发送”信息文本框编辑要发送的消息“发送”按钮将消息发送出去“进入”按钮进入聊天室“离开”按钮离开聊天

12、室表 3.2 客户端的主要控件功能3.3 程序流程图(一)流程运行框架”按钮ket类添加到队列否满足?tupe =LOGIN_IO发该消息触发服务器本地OnReceive()事件请求是否CServerSocket类接收请触发OnRec 判断消息头tagtype字段tupe =SEND直接广播触发开始定义、创建数据报套接字CSeverSocket定义、创建数据报套接字CClientSocket单击“进入向服务器发起连接Connect()请求创建CClientSocSocket()被接收?是求并触发OnAccept()事件创建CClientSocket并添加到Socket队列eive()事件客户端人数是否Header结构的的类型? 是是否有人要发言?是否要离开?_MESSAGE成员发言,编辑文字,点击单击“离开”按钮,关闭本地SocketCClientSocket类对象的OnClose()事件调用UpdateUser()更新本地用户列表调用GetMsgFromRoom()接收后显示在屏幕上所有人离开后,管理员单击“关闭”按钮结束转 广播通知所有客户端成员,更新服务器用户列表单击“开始”按钮图 3.1 流程运行框架程序流程图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1