mfc课程设计心得体会

摘 要

本系统使用Mircosoft的MFC所提供的Winsock套接字类来创建一个最为简单的客户机服务器应用,这个类中用到的最重要的一项技术是通过对Csocket、CArchive和CSocketFile 三个类的联合是用来使得对网络数据传输就像是使用本地文件一样简单。然而,不管是客户端,还是服务器,其基本工作原理都是一样的,都是由Cdocument类的实例来负责完成消息的本地处理工作...

连接的建立:

当系统启动以后,会首先判断连接状态,如果已连接,则退出处理过程,否则将会创建一个连接,实现代码段详见 附录(程序段1 (ChatClientDoc.cpp))...

消息的发送:

用户需要编辑和发送信息,以实现向其他用户传递消息的效果。

实现消息的发送核心代码如下:...

消息的接收:

用户需要接收消息,以实现从其他用户处了解信息。

实现消息的接收的代码段详见 附录(程序段2 (ChatClientDoc.cpp))...

目 录

1 MFC的聊天系统实现课程设计概述 1

1.1 几个基本概念 1

1.1.1 基本操作函数 1

1.1.2 软件狗 2

1.1.3 加密狗原理 3

1.2 客户机/服务器编程模型 4

1.2.1 客户机/服务器 4

1.2.2 面向连接的编程模型 4

1.2.3 无连接编程模型 4

2 MFC的聊天系统实现基本设计 5

2.1 基本设计分析 5

2.1.1 连接的建立 5

2.1.2 消息的发送 5

2.1.3 消息的接收 5

2.2 设计界面 5

2.2.1 客户端 5

2.2.2 服务器端 8

3 MFC的聊天系统实现设计分析 9

3.1 系统设计分析 9

3.1.1 客户端的分析 9

3.1.2 服务器端的分析 11

3.2 加密设计 12

3.2.1 程序保护的加密狗设计 12

4 总结 13

4.1 总结 13

4.2 心得体会 13

参考文献 14

附录 15

与工作者线程不同的是,用户界面线程通常用于处理用户的输入,响应用户产生的消息。为了建立一个用户界面线程,需要从CWinThread引出自定义的类,并将该类的运行时信息传给用户界面形式的AfxBeginThread函数,以便创建用户界面线程。

一般来说,用户界面线程的创建过程需要先从基类CWinThread中派生出用户自定义的新类,再使用AfxBeginThread函数创建线程。

范例17-1下面将通过一个实例来讲述如何创建一个用户界面线程。该实例实现创建一个独立于应用程序的窗口,其具体操作步骤如下所述。

新建一个MFC单文档应用程序。单击File|New菜单项,打开新建对话框,选择建立MFC AppWizard[exe]工程,为工程命名为“创建线程”。在AppWizard的第一步中选中Single document,其他步骤按照默认设置,单击Finish按钮完成创建。

添加菜单项。为了演示出该实例创建独立于应用程序的用户界面线程,在该工程中添加新的菜单项“用户界面线程”用于创建和启动线程。具体操作为:

打开工作区的ResourceView选项卡,修改MFC应用程序向导自动生成的菜单资源。在原菜单基础上再添加一个弹出式菜单“线程”。在其下面添加菜单项“用户界面线程”,设置其ID为ID_THREAD_GUI,如图17-3所示。

从CWinThread中派生新类。派生新类的方法很简单,在以前章节中也介绍过。可以使用ClassWizard工具单击Add Class|New命令,也可以通过打开工作区ClassView选项卡。右键单击最顶层类集,在弹出的快捷方式菜单中选择New Class菜单项来启动New Class对话框。在基类列表框中选择CWindThread类,然后在Name文本框中输入派生类名。该实例定义其派生类为MyThread。

单击OK按钮后即创建了CWinThread类的派生类MyThread。此时读者在工作台的FileView标签中找到MyThread.h文件,打开后可看到如下的类定义。

// MyThread thread

claMyThread : public CWinThread

{

DECLARE_DYNCREATE(MyThread)

protected:

MyThread();

……

DECLARE_MESSAGE_MAP()

摘 要

本系统使用Mircosoft的MFC所提供的Winsock套接字类来创建一个最为简单的客户机服务器应用,这个类中用到的最重要的一项技术是通过对Csocket、CArchive和CSocketFile 三个类的联合是用来使得对网络数据传输就像是使用本地文件一样简单。然而,不管是客户端,还是服务器,其基本工作原理都是一样的,都是由Cdocument类的实例来负责完成消息的本地处理工作...

连接的建立:

当系统启动以后,会首先判断连接状态,如果已连接,则退出处理过程,否则将会创建一个连接,实现代码段详见 附录(程序段1 (ChatClientDoc.cpp))...

消息的发送:

用户需要编辑和发送信息,以实现向其他用户传递消息的效果。

实现消息的发送核心代码如下:...

消息的接收:

用户需要接收消息,以实现从其他用户处了解信息。

实现消息的接收的代码段详见 附录(程序段2 (ChatClientDoc.cpp))...

目 录

1 MFC的聊天系统实现课程设计概述 1

1.1 几个基本概念 1

1.1.1 基本操作函数 1

1.1.2 软件狗 2

1.1.3 加密狗原理 3

1.2 客户机/服务器编程模型 4

1.2.1 客户机/服务器 4

1.2.2 面向连接的编程模型 4

1.2.3 无连接编程模型 4

2 MFC的聊天系统实现基本设计 5

2.1 基本设计分析 5

2.1.1 连接的建立 5

2.1.2 消息的发送 5

2.1.3 消息的接收 5

2.2 设计界面 5

2.2.1 客户端 5

2.2.2 服务器端 8

3 MFC的聊天系统实现设计分析 9

3.1 系统设计分析 9

3.1.1 客户端的分析 9

3.1.2 服务器端的分析 11

3.2 加密设计 12

3.2.1 程序保护的加密狗设计 12

4 总结 13

4.1 总结 13

4.2 心得体会 13

参考文献 14

附录 15

与工作者线程不同的是,用户界面线程通常用于处理用户的输入,响应用户产生的消息。为了建立一个用户界面线程,需要从CWinThread引出自定义的类,并将该类的运行时信息传给用户界面形式的AfxBeginThread函数,以便创建用户界面线程。

一般来说,用户界面线程的创建过程需要先从基类CWinThread中派生出用户自定义的新类,再使用AfxBeginThread函数创建线程。

范例17-1下面将通过一个实例来讲述如何创建一个用户界面线程。该实例实现创建一个独立于应用程序的窗口,其具体操作步骤如下所述。

新建一个MFC单文档应用程序。单击File|New菜单项,打开新建对话框,选择建立MFC AppWizard[exe]工程,为工程命名为“创建线程”。在AppWizard的第一步中选中Single document,其他步骤按照默认设置,单击Finish按钮完成创建。

添加菜单项。为了演示出该实例创建独立于应用程序的用户界面线程,在该工程中添加新的菜单项“用户界面线程”用于创建和启动线程。具体操作为:

打开工作区的ResourceView选项卡,修改MFC应用程序向导自动生成的菜单资源。在原菜单基础上再添加一个弹出式菜单“线程”。在其下面添加菜单项“用户界面线程”,设置其ID为ID_THREAD_GUI,如图17-3所示。

从CWinThread中派生新类。派生新类的方法很简单,在以前章节中也介绍过。可以使用ClassWizard工具单击Add Class|New命令,也可以通过打开工作区ClassView选项卡。右键单击最顶层类集,在弹出的快捷方式菜单中选择New Class菜单项来启动New Class对话框。在基类列表框中选择CWindThread类,然后在Name文本框中输入派生类名。该实例定义其派生类为MyThread。

单击OK按钮后即创建了CWinThread类的派生类MyThread。此时读者在工作台的FileView标签中找到MyThread.h文件,打开后可看到如下的类定义。

// MyThread thread

claMyThread : public CWinThread

{

DECLARE_DYNCREATE(MyThread)

protected:

MyThread();

……

DECLARE_MESSAGE_MAP()


相关内容

  • 同学通讯录管理程序
  • 面向对象程序设计 课程设计报告 设计题目: 同学通讯录管理程序 学 院: 信息工程学院 专 业: 计算机科学与技术(交通) 学 号: [1**********]8 姓 名: 王 沛 林 指导教师: 2015 年 1 月4 日 目录 一.设计目的和内容 1.1设计目的----.------------ ...

  • 高校宿舍管理系统
  • 湖南工学院课程设计 论 文 题目 高校宿舍管理系统 专 业 : 组 员 : 指导老师 : 完成日期 :2015年 月 日 摘 要 当今大学校园内的学生公寓,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的公寓信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差 ...

  • 直流电机转速测量与控制系统设计
  • 直流电机转速测量器的设计与制作 班级:自动化 11031 姓名:向锐嵘 学号:1302250135 指导老师:向阳 一. 课程设计: 直流电机转速测量与控制系统实验. 二.课程设计目的: 1.了解以微机为核心的闭环控制系统的组成原理.掌握电机转速闭环控制系统的构成方法. 2.了解霍尔器件的工作原理: ...

  • 东南大学大二短学期MFC设计个人工作小结
  • 个人工作小结 在这个短学期中,我们小组选择拼图游戏这个项目的设计.在整个设计过程中,我主要负责查找资料,写流程图以及MFC窗口设计及美化工作.其中包括对话框的建立.链接和运行,各种控件的使用,如组合框.列表框.编辑框.按钮等等. 总体来讲,完成情况很不错.程序正常运行,各控件功能得到良好体现. 在写 ...

  • 微生物燃料电池内阻测试仪设计毕业论文
  • 微生物燃料电池内阻测试仪设计 摘要 微生物燃料电池(MFC) 是一个微生物催化有机化学能直接转化为电能的生物反应器.微生物燃料电池同时能净化污水和收获电能 ,这样可以降低污水处理的成本 ,因而近年来受到了广泛关注.然而 ,目前 MFC输出功率还很低,比普通的氢气燃料电池要低3~4个数量级,微生物燃料 ...

  • 计算器设计报告
  • 计算器的设计 1概述 1.1 课程设计目的 1.巩固并加深学生对C++语言程序设计知识的理解: 2.培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别: 3.进一步掌握和应用VC++ 6.0集成开发环境: 4.提高运用C++语言解决实际问题的能力: 5.初步掌握开发小型实 ...

  • 建筑结构检测与鉴定作业
  • 郑州大学现代远程教育<建筑结构检测与鉴定>课程 考核要求 说明:本课程考核形式为提交作业,完成后请保存为WORD 2003格式的文档,登陆学习平台提交,并检查和确认提交成功(能够下载,并且内容无误即为提交成功). 一. 作业要求 1.计算题可参考相关教材.标准.规范和规程,应有完整的计算 ...

  • 软件工程实践报告
  • <软件工程>实践报告 准考证号: 考生姓名: 一.实验目的 软件工程是一门实践性很强的计算机专业课程, 该课程的任务是使我们掌握软件工程的基本概念.基本原理.实用的开发方法和技术 .了解软件工程各领域的发展动向:如何用工程化的方法开发软件项目,在开发过程中应遵循的流程,准则,标准和规范. ...

  • 学生信息管理
  • 天津职业技术师范大学 Tianjin University of Technology and Education <数据库系统概论> 课程设计报告 学生信息管理系统 专 业: 计算机科学与技术 班级学号: 学生姓名: 指导教师: 二〇一一年六月 一.实验名称: 学生信息管理系统 张彩娟 ...