1 / 40
文档名称:

山东建筑大学课程设计.docx

格式:docx   大小:280KB   页数:40页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

山东建筑大学课程设计.docx

上传人:jiyudian11 2022/7/19 文件大小:280 KB

下载得到文件列表

山东建筑大学课程设计.docx

相关文档

文档介绍

文档介绍:山东建筑大学
课 程 设 计 说 明 书(论 文)

目:
聊天程序的开发

程:
VC++程序设计基础课程设计

(部):
信息与电气工程学院

业:
电子信息工程

级:
学生姓名:
采用客户/服务器模式,分为客户端程序和服务器端程序。服务器采用 WINSOCK I/O 模型中的任一种,支持多个客户同时在线聊天。客户端程序和服务器程序通过网络交换 聊天字符串内容,服务器窗口的列表框中显示当前在线用户,支持客户端之间的私聊(可 以通过服务器中转,或考虑UDP打洞直接建立端端连接)。
课程设计要求设计并编程完成两个方面的内容:首先建立一个使用TCP协议的聊天 室服务器,这个服务器可以同时支持多个用户的在线聊天;其次设计一个可以和服务器 通信的聊天室客户端。
功能要求
◊支持多个客户端的连接,在服务器和多个客户端之间进行数据传输;
◊接收客户端发送的消息,并显示在一个列表框中;
在用户连接上后有提示,显示出连接的用户名字;
发送信息时可以显示聊天的所有记录;
系统主要功能和主要功能描述
服务器端聊天程序必须能够做 3件事情:
(1) 服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护 一个客户连接表,以记录所有成功的连接。
(2) 服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转 发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息向除源端 外的所有客户发送过去。
(3) 服务器还要监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相 应的表项,并及时更新连接表。
客户端聊天程序需要完成以下几个功能:
(1) 客户端聊天程序要负责建立和维护与服务器的连接,通过获取用户的设置尝试 与服务器的连接,并且随时检测连接的状态。
(2) 客户端聊天程序要把用户输入的信息及时发送到聊天服务器。一般情况下,当 用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才 能及时地满足用户的交互需求。
(3) 要随时准备好接受来自服务器的信息,随时把接受到的信息显示出来,让用户 及时看到对方的响应。
(4) 在用户退出聊天过程是要关闭与服务器的连接。比较好的做法是提前通知服务 器或者直接给服务器发送一条退出通知,使得服务器能够及时掌握客户端的连 接状态,把对方客户的退出信息及时发送到对等实体上。
3设计流程图
根据对用户的要求及功能设置可以得到以下的流程图 ,用户首先启动客户端, 登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在 线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天。 客户端的聊天分为对所有人的信息和私聊的信息,该信息应通过程序控制分别进行处 理。
图 设计流程图
4 程序的实现
项目创建
本例将使用Visual C++ AppWizard (exe)项目 取名为“Chat”在MFC向导的第一步界面中选择“Dialog based”单选按钮,在MFC AppWizard向导的第二步界面中选择“Windows Sockets”复选框,其它均采用默认设置。
界面设计
打开IDD_CHAT_DIALOG对话框,该对话框将是程序运行时的主界面,以下是为对话框 添加的控件。如下所示:
IDD_CHAT_DIALOG对话框中的主要控件
ID
属性设置
分组框
IDC STATIC
标题“”
静态文本
IP地址控件
静态文本
编辑框
分组框
编辑框
静态文本
IDC STATIC
IDC SERVERIP
IDC STATIC
IDC PORT
IDC STATIC
IDC SHOWTEXT
默认
标题"发送”
IDC STATIC

标题“连接服务器” 标题“建立服务器 标题“消息”
标题“IP地址”
默认
标题“端口”
默认
标题“聊天记录” 样式:多行,只读 标题“昵称”
^认
完成控件添加后的对话框如下图所示:
添加完上述控件后,打开Classwizard,为IDD_CHAT_DIALOG指向的CChatRoomDig 类按照如下表添加成员变量。
成员变量的添加
控件ID
变量名
数据类型
IDC PORT
m uport
UNIT
IDC SHOWTEXT
m sShowStrin