人人范文网 范文大全

《网络编程技术》课程设计指导书

发布时间:2020-03-02 20:03:19 来源:范文大全 收藏本文 下载本文 手机版

《网络编程技术》课程设计指导书

一、教学目的

通过本次课程设计,使学生进一步理解、领会C++语言和网络编程技术,把所学的知识运用到具体的程序设计当中去,编写一个接近实际的应用程序。

本课程设计是一门综合性实验。

通过本次课程设计,掌握VC++应用程序设计;加深对TCP/IP协议的理解;掌握C/S编程模式;掌握Socket机制、传输控制协议;用户数据报协议;掌握网络抓包的原理;掌握网络编程应用程序分析、设计、编程和调试的整个过程。

二、设备及工具

硬件:微机70台以上,P4以上处理器,256M以上内存、Ethernet网卡,交换机 软件:Windows2000/xp操作系统,VC6.0编程环境。

三、选题及要求

1、简单的聊天室程序

本题是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。

本实例程序的技术要点是:

 如何从CasyncSocket类派生出自己的WinSock类。

 理解WinSock类与应用程序框架的关系。

 重点学习流式套接字对象的使用。

 处理网络事件的方法。

2、FTP客户端程序

程序能实现基本的FTP客户端功能,能登陆FTP服务器,显示登陆客户目录下的文件和目录名,能从该目录中选择下载服务器的文件,也能向服务器上传文件。 该程序是基于对话框的MFC程序,程序界面布置要点:

 三个文本编辑框,分别用于输入FTP服务器域名、登陆用户名和登陆口令。  一个列表框,用来显示FTP服务器当前目录的内容,并允许客户从中选择文件下载。

 四个命令按钮分别执行查询、上传、下载和退出的功能。

用户执行程序的流程是:

1) 进行各种操作之前,应首先输入服务器域名、登陆用户名和口令。

2) 如果要进行查询,可以点击“查询”按钮,调用OnQuery函数。该函数获得用户当前输入的服务器名、登陆用户名和口令等信息,清除列表框的内容;然后创建Internet会话类对象,进行服务器的登陆,试图建立与指定FTP服务器的连接;如果连接成功,就创建ftpFileFind文件检索类对象,查找服务器上当前目录的任意文件,找到了第一个文件后,

继续找其他的文件,并将找到的文件或目录名显示在列表框中。所有文件找到后,结束查询,并依次删除文件查询对象、FTP连接对象和Internet会话对象,结束会话。

3) 此时,可以从服务器下载文件。从列表框中选择一个文件,会产生LBN_SELCHANGE事件,自动调用相应的OnSelchangeListFile函数,禁用用来输入的文本框控件,禁用查询和上传按钮,激活下载按钮。此时,用户可以点击“下载”按钮,产生BN_CLICKED事件,自动调用OnDownLoad函数,调用DownLoad函数,下载该文件。下载完毕,禁用下载按钮,激活查询和上传按钮,激活用来输入的文本框控件。而DownLoad函数重新创建Internet会话,建立FTP连接,下载文件后,将会话对象和连接对象清除。

4) 如果要向FTP服务器上传文件,点击“上传”按钮,产生BN_CLICKED事件,调用OnUpLoad函数,该函数获得当前输入的服务器名、登陆用户名和口令,禁用用于输入的文本框控件,禁用查询按钮,禁用用于输入的文本框控件,弹出小对话框,获得待上传的本地机文件路径和文件名,调用UpLoad函数上传文件。上传完毕,激活查询按钮,激活用于输入的文本和编辑控件。UpLoad函数也重新创建Internet会话,建立FTP连接,上传文件后,然后清除会话对象和连接对象。

可见,此程序的查询、上传和下载功能基本是独立的。每次都要创建会话、建立连接,执行操作,然后清除对象。这时是为了简单清楚起见而这样做的。

此程序的主要技术要点是:

如何创建一个Internet会话,即创建CinternetSeion对象;如何建立与FTP服务器的连接,即创建CftpConnection对象;如果连接成功,如何获得当前登陆的目录下的文件和目录名称,即检索一个目录下的文件,并显示文件信息;如何下载文件、上传文件以及关闭连接。

3、Web浏览器设计

使用ChtmlView类来实现一个应用程序,使之具有Web浏览器的功能,包括浏览网页、前进、后退、返回主页和搜索功能。通过实例,重点掌握利用ChtmlView类开发Web客户端程序的方法。程序界面和完成的功能可以参考Windows Iexplorer6.0。

4、电子邮件接收程序

通过这个实例,读者可以进一步了解POP3的有关原理和内容。

这个实例不太复杂,用户可以利用某个网站的pop3电子邮件接收服务器来接收你在该网站的电子邮件里的信件。首先填入pop3服务器地址、邮箱用户名和口令,并决定是否要删除邮箱里的邮件;然后点击“连接”按钮,程序会与服务器建立TCP连接,然后发送用户名和口令,经过验证,进入pop3会话。通过命令交互,将邮箱中的所有邮件取回。在此过程中,用一个多文本列表框来显示全部的会话信息。信件全部下载完毕后,用一个组合列表框来显示所有信件的标题字段。用户可以从中选择一封信件,查看或者存储。然后可以断开连接。

本课题只介绍了接收邮件,提取信头标题字段的有关内容,能正确显示符合RFC822规范的邮件。

程序实现的技术要点是:

(1)、运用Windows的消息驱动机制

除了由MFC创建的应用程序类和对话框类以外,程序从CasyncSocket类派生了自己的套接字类,并为它添加了OnConnect( )、OnClose( )和OnReceive( )三个事件处理函数。程序的会话过程几乎完全是由FD_READ消息驱动的。建立连接后,服务器会返回消息,接到命

令后,服务器也会返回信息。当信息到达客户端套接字的接收缓冲区时,会触发FD_READ消息,并自动执行OnReceive( )函数。该函数接收服务器发来的消息,进行分析处理,然后再发送相应的命令。这命令又会引来服务器的响应,又会触发客户端的FD_READ消息。如此周而复始,完成POP会话的全过程。

(2)、通过状态转换来控制会话命令的发布顺序

程序定义了一个枚举类型STATE,并为套接字类定义了一个STATE类型的变量state用来表示POP会话的实际状态。容易看出,枚举的成员符号是客户端向POP3服务器发送的命令。

Typedef enum

{

FIRST = 0, USER, PASS, STAT, LIST, RETR, ENDRETR, DELE, GOON

} STATE;

STATEstate;

当用户点击“连接”按钮与服务器建立TCP连接时,将state置为初值FIRST;然后,每当收到服务器的信息,一方面根据会话的当前状态作响应的分析处理,决定应当继续发送哪条命令,另一方面发出下一个命令以后,改变state的值,将它置为该命令的状态对应的值,这就实现了会话过程中的状态转换,并保证会话按照既定的顺序进行。

(3)、用结构向量来缓存信件信息

首先程序定义了一个结构类型,用来缓存一封信件信息。

Typedef struct

{

Cstring text;//存储信件的文本

intmsgSize; //信件的大小

intretrSize; //信件实际下载的大小,在下载过程中动态变化

}MESSAGEPROP;

然后为套接字类定义了一个向量型的成员变量,相当于一个数组,其成员是上述结构。 Vectormsgs;

在pop会话中,一次性地将信箱中所有信件转入这个向量,然后可以查阅,存储到文件中,或者进行其他处理。

5、电子邮件发送程序

通过这个实例,读者可以进一步了解SMTP的有关原理和内容。程序的用户界面可参考Outlook。

这个实例实现了smtp电子邮件发送程序的一些功能,用户可以利用某个网站的smtp电子邮件发送服务器来发送电子邮件。

你必须是该网站的注册用户,并在该网站申请了免费邮箱。

首先填入smtp服务器地址、邮箱用户名和口令,端口号是25,并填入发信人,发信地址填入你在该网站的免费邮箱地址。在对话框中填入发送电子邮件的相关信息,选择一个附件,然后点击“发送”按钮,程序会与服务器建立TCP连接,然后按照ESMTP协议发送ELHO命令,然后发送用户名和口令,经过验证,进入SMTP会话。

通过命令交互,将邮件和附件发送出去,然后断开连接。在此过程中,多文本列表框会显示全部的会话信息。

现在的SMTP服务器与以前不一样,一般都要经过验证身份后,才为你提供传输邮件的服务,验证的方法有很多种,这里只实现了一种,仅仅为了说明问题。

程序实现的技术要点是:

1) 运用Windows的消息驱动机制;

2) 通过状态转换来控制会话命令的发布顺序;

3) 实现了baseo4编码和译码。

四、课程设计过程与具体要求

1.学习课程设计指导书和分组

学习研究课程设计指导书,进行分组并且明确每个学生在开发小组中扮演的角色及承担的职责(包括选出组长)。

2.确定目标、初步方案,准备、试用开发环境与工具

每个小组确定开发网站目标及初步方案;选择、准备、试用开发平台、数据库、交互网页开发技术、网页设计工具及其他有关开发工具。

3.学习与搜集素材,借阅、购置必要的书籍与材料

学习开发小组及成员根据自己承担的任务利用各种途径(图书馆、因特网、书店、同学亲友等)进行针对性的学习并收集相关素材,包括精选、购置必要的书籍。

4.课堂与课下结合开发项目

因为需要自学和探索的内容较多,每个学生要特别发挥积极主动精神投入课程设计和开发活动。除了实验室正式安排的课程设计时间之外,学生需要充分利用好课余时间,自己有计算机的学生更要充分利用有利条件以取得尽可能好的开发成果,力争获得最大收益。

5.各阶段的开发工作

开发过程中,小组长必须承担起领导责任,不定期召开小组开发工作研讨会(建议5-8次)。会前有准备,会议有记录(包括日期、出席人员、主题、讨论纪要、结论与问题、计划与行动分工。事后要保存好供老师检查),会后有分工和检查。开发小组工作会议的可能内容是:

1) 选题、开发方案研讨;小组成员分工;开发计划拟定。

2) 搜集、查阅资料。

3) 系统的分析与设计。

4) 程序代码的录入。

5) 完成测试,整理开发文档、汇总。

6.做好小组与个人的开发记录、总结,做好小组内外的交流与互助

各个开发小组及其每个成员可以互相研讨、帮助,但必须独立完成自己承担的开发任务与文档编制任务,不得抄袭他人成果。在课程设计进行期间,每个小组由小组长建立项目开发记录本(不少于30页),每周至少做一次记录,包括小组会议记录,小组记录本要保存好供老师检查。

建议每个小组成员也建立自己个人的开发记录或日志。记录的内容可以包括:个人在小组中承担任务、计划与进度;相关学科与软件工具学习内容摘要与存在问题、难点;好的创意与建议;开发或学习心得;文档草稿;重要信息与线索记录等。

这样做可以有助于项目开发工作和自己的学习,也有助于最后完成个人和小组的课程设计报告。

五、课程设计交付成果说明

1.书面材料

(1)个人报告: 每个学生提交个人课程设计报告AG14~EG14(A4打印稿,不少于10页,格式要求参看附录)交给组长。由组长连同小组打印报告一并按时交给老师。

(2)小组报告: 课程设计小组报告(A4打印稿,不少于15页,格式要求参看附录) 由小组的角色D完成(报告大纲由组长起草,报告要经过全组讨论,由各个成员提供素材)。

(3)小组项目开发记录本(含小组进行课程设计的活动日志与会议记录)。注:组长把小组报告、开发记录本连同所有成员的个人报告交给课代表,再由课代表统一交给老师。

2.软件与电子文档

(1)个人电子文档:把含个人完成的文档软盘交给小组负责保管文档的角色D(平时组长安排的计算机的硬盘中,最后保存在不只一台计算机中)。个人软盘中应当包含个人完成的开发源代码和在上面“小组成员角色描述与负责完成的文档”中指定的文档和个人课程设计报告的电子文档。

(2)小组项目电子文档:小组平时把运行系统的文档保存在组长安排的计算机硬盘小组项目专用目录中。完成项目后,把小组项目课程设计报告、可运行程序、源代码、相关文档连同各个小组成员的文档分别复制到在小组项目专用目录下不同的子目录以及每个成员的子目录中。最后再把包含整个小组项目专用目录的内容复制到负责保管电子文档的课代表的计算机中本班软件工程课程设计目录中,待老师审查、验收。

注1.在老师未审核和未给出成绩之前,个人和小组均应当有完整的程序与文档的备份。 注2.最好每个班级把本班中所有小组项目(其中含有小组与各成员的报告、可运行程序、系统配置文件、安装文件、源代码和相关文档)刻录在一张CD-ROM光盘中交给老师,可以免去交个人和小组软盘带来的麻烦。有条件的组也可以把小组完成的成果刻录在一张CD-ROM光盘提交。要求每小组交付报告、系统与文档总量最好在10MB至30MB之间。

六、成绩评定

1.成绩分为优、良、中、及格、不及格五个等级。

2.学生成绩由四部分组成:平时考勤(20%),实习报告(10%),课题功能实现(40%),答辩(30%)。缺勤三分之一者考核成绩不及格,重修实习内容。

《网络编程技术》课程教学大纲

课程设计报告书数控编程技术(学生参考).

网页课程设计指导书

管理信息系统课程设计指导书

软件工程课程设计指导书

《管理信息系统》课程设计指导书

网络与通信课程设计指导书

社会保障课程设计指导书

营销策划课程设计指导书

《营销策划》课程设计指导书

《网络编程技术》课程设计指导书
《《网络编程技术》课程设计指导书.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档