发布时间 : 星期一 文章pop邮件接收更新完毕开始阅读ad50e7d2240c844769eaee32
课程设计报告
( 2010 – 2011 年度第1学期)
名 称:网络软件程序设计课程设计 题 目: 邮件接收程序 院 系: 计算机系 班 级: 网络工程 学 号: 学生姓名: 指导教师: 设计周数: 1 周
成 绩:
日期: 2011 年 1 月 7 日
《网络软件程序设计》课程设计
任 务 书
一、 目的与要求
1. 任务:设计一个邮件接收程序,可以按照要求实现邮件接收器的功能。
2. 目的:使学生加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,熟悉各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽学生的知识领域,锻炼学生的实践技能,培养学生科学的工作作风。
3. 要求:基本功能完善,界面美观,方便易用,操作无误;通过课程设计学生应该学会使用各种网络通信协议和网络编程接口编写不同类型的网络应用程序,具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。
4. 学生要求人数:1人。
二、 主要内容
POP3协议是一个从邮件服务器的邮箱中取邮件到本地主机的协议。邮件接收器是利用POP3原理实现接收邮件服务器上的邮件,并把邮件下载保存到本地计算机上。
三、 进度计划
序号 设计内容 任务布置,资料查询,方案制定 算法设计,程序实现 撰写报告,软件验收 完成时间 周一 周二至周四 周五 备注 1 2 3 4 四、设计成果要求
1. 完成规定的课程设计任务,所设计软件功能符合要求;
2. 完成课程设计报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对设计思路的归纳和对问题解决过程的总结。
五、 考核方式
1. 平时成绩+验收答辩+实验报告; 2. 五级分制。
学生姓名:
指导教师:
2011 年 1月 3 日
1
一、课程设计的目的与要求
5. 任务:设计一个邮件接收程序,可以按照要求实现邮件接收器的功能。
6. 目的:使学生加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,熟悉各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽学生的知识领域,锻炼学生的实践技能,培养学生科学的工作作风。
7. 要求:基本功能完善,界面美观,方便易用,操作无误;通过课程设计学生应该学会使用各种网络通信协议和网络编程接口编写不同类型的网络应用程序,具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。
8. 学生要求人数:1人。 二、课程设计正文 一)主要的实验步骤
1.使用MFC AppWizard创建应用程序框架
工程名是pop3,应用程序的类型是基于对话框的,对话框的标题是“接收电子邮件客户端程序”,需要Windows Sockets的支持,其它部分接受系统的默认设置就可以。向导自动为应用程序创建了两个类:
应用程序类:CPop3App,基类是CWinApp,对应的文件是pop3.h和pop3.cpp。 对话框类:CPop3Dlg,基类是CDialog,对应的文件是pop3Dlg.h和pop3Dlg.cpp。 2.为对话框添加控件
在程序的主对话框界面中按表添加相应的可视控件对象,并按修改控件的属性。 对话框中的控件属性 控件类型 静态文本 static text 静态文本 static text 静态文本 static text 编辑框 edit box 编辑框 edit box 编辑框 edit box 复选框 Check Box 多文本框 RichEdit Box 组合选择框ComboBox 命令按钮 button 命令按钮 button 命令按钮 button 命令按钮 button 3.定义控件的成员变量
按照表,用类向导(Class Wizard)为对话框中的控件对象定义相应的成员变量。
2
控件ID IDC_STATIC IDC_STATIC IDC_STATIC IDC_EDIT_SERVER IDC_EDIT_USER IDC_EDIT_PASS IDC_CHECK_DEL IDC_RICH_INFO IDC_COMB_LIST IDC_BTN_CONN IDC_BTN_DISC IDC_BTN_VIEW IDC_BTN_SAVE Caption pop3服务器地址 用户名 口令 删除邮箱中的邮件 连接 断开 查看邮件 存 储 控件对象的成员变量 控件ID Control IDs IDC_EDIT_SERVER IDC_EDIT_USER IDC_EDIT_PASS IDC_CHECK_DEL IDC_COMB_LIST IDC_RICH_INFO 变量名称 Member Variable Name m_strServer m_strUser m_strPass m_bolDel m_ctrList m_Info m_ctrlnfo 4.为对话框中的控件对象添加事件响应函数
按照表,用类向导(Class Wizard )为对话框中的控件对象添加事件响应函数。 对话框控件的事件响应函数 控件类型 对象标识 ObjectID 命令按钮 IDC_BTN_CONN 命令按钮 命令按钮 命令按钮 IDC_BTN_DISC IDC_BTN_VIEW IDC_BTN_SAVE 消息 Message BN_CLICKED BN_CLICKED BN_CLICKED BN_CLICKED 函数Member functions OnBtnConn OnBtnDisc OnBtnView OnBtnSave Value Value Value Value Control Value Control CString CString CString BOOL CComboBox CString CRichEditCtrl 变量类别 Category 变量类型 Variable Type Cpop3Dlg类添加其它的成员
void Disp(LONG flag); //在不同的会话阶段显示不同的信息 mySock pop3Socket; //套接字类对象实例 6.创建从CAsyncSocket类继承的派生类
为了能够捕获并响应socket事件,应创建用户自己的套接字类,可利用类向导添加。 Class Type选择MFC Class,类名为mySock,基类是CAsyncSocket类,创建后对应的文件是mysock.h和mysock.cpp。在利用类向导为mysock类添加OnConnect,OnClose和OnReceive三个事件处理函数,并为它添加一般的成员函数和变量。
7.手工添加包含语句以及事件函数和成员函数的代码 8.分阶段编译执行,进行测试 二)程序的要点:
除了由MFC创建的应用程序类和对话框类以外,程序从CAsyncSocket类派生了自己的套接字类,并为它添加了OnConnect()、OnClose()和OnReceive()三个事件处理函数。程序的会话过程几乎完全是由FD_READ消息驱动的。建立连接后,服务器会返回信息,接到命令后,服务器也会返回信息。当信息到达客户端套接字的接收缓冲区时,会触发FD_READ消息,并自动执行OnReceive()函数。该函数接收服务器发来的信息,进行分析处理,然后再发送相应的命令。这命令又会引来服务器的响应,又会触发客户端的FD_READ消息。如此周而复
3