通信软件设计 (专业限选课) Design of Communication Software
【课程编号】XZ26199 【学分数】3
【学时数】60 = 38(理论)+ 6(研究)+ 16(实验) 【适用专业】网络通信工程
一、教学目的、任务
本课程属于软件工程实践应用型课程。通过本课程的学习,使学生了解网络通信协议的类别与设计要求、掌握WINDOWS WINSOCK库的使用、掌握Windows下多线程开发的技术,并初步具备Windows下网络通信软件开发的能力。
二、课程教学的基本要求
通过理论和实践的结合,使学生了解网络通信协议的类别,网络通信协议制定的规则和目的。熟练掌握Windows下进行通信软件开发必需具备的技能,如Windows winsock库的使用、win32 多线程 API 的使用、STL模板库的使用等。通过课程设计,完成一个简单的网络通信软件的设计和开发,最终,初步掌握Windows下网络通信软件开发的技术。
三、教学内容和学时分配 (4 + 10 + 16 + 12 + 4 + 14 = 60) 第一章 初识网络通信协议 4 学时(课堂讲授学时) 主要内容:
1.1 通信协议设计概述 1.2 HTTP协议概述 1.3 重温TCP协议 教学要求:
介绍通信协议相关知识、以HTTP协议为例,简单介绍应用层协议如何工作。以TCP协议为例,介绍传输层协议如何工作。
【课程类别】专业限选课 【编写日期】2010.3.30 【先修课程】计算机网络、C++
其它教学环节(如实验、习题课、讨论课、其它实践活动):1研究。
第二章 常用应用层通信协议-从“知道”到“了解” 10学时(课堂讲授学时+实验课时+研究课时) 主要内容:
2.1 HTTP协议 2.2 FTP协议
2.3 SMTP及POP3协议 教学要求:
掌握HTTP协议、FTP协议、SMTP协议及POP3协议。掌握Sniffer软件的使用。 其它教学环节:2实验 + 2研究
实验一:SnifferPro软件捕获数据并分析(2学时)
要求:使用SnifferPro软件,捕获HTTP网站访问数据,并在HTTP和TCP层对数据进行分析。
研究:完成“SnifferPro软件捕获数据并分析”的实验报告(2学时)
第三章 Windows网络编程 16学时(课堂讲授学时+实验学时)
3.1 网络原理和协议 3.2 地址家族和名字解析 3.3 Winsock基础 3.4 Winsock I/O方法 教学要求:
掌握Windows WINSOCK lib的使用。掌握TCP、UDP编程。掌握相关API的使用。 其它教学环节:4实验学时
实验二:TCP协议通信实验(2学时)
要求:编写一个使用TCP协议进行通信的程序。 实验三:UDP协议通信实验(2学时)
要求:编写一个使用UDP协议进行通信的程序。 第四章 多线程编程 12学时(课堂讲授学时+实验学时) 主要内容:
4.1 进程与线程 4.2 线程的WIN32 API 4.3 线程间通信的方法 4.4 线程的同步方法 教学要求:
掌握进程与线程的概念,掌握使用WIN32 API产生线程的方法,掌握线程间通信中的消息通信机制,掌握使用互斥锁、事件等进行线程间同步的方法。 其它教学环节:6实验课时
实验四:线程间通信实验(2学时)
要求:编写一个多线程程序,分别使用共享内存、同步消息和异步消息进行通信。 实验五:线程间同步实验(1)(2学时)
要求:编写一个多线程程序,分别使用关键区技术、互斥量进行同步。 实验六:线程间同步实验(2)(2学时)
要求:编写一个多线程程序,分别使用信号量、事件进行同步。 第五章 STL库应用 4学时(课堂讲授学时) 主要内容:
5.1 STL简介 5.2 List容器 5.3 Map容器 教学要求:
掌握STL的概念、掌握STL中List和Map容器的使用方法。 其它教学环节:无
第六章 点对点的文件传输软件设计与开发 14 学时(课堂讲授学时+实验学时+研究学时) 主要内容:
6.1 软件需求分析
6.2 通信协议设计设计讨论 6.3 软件模型设计讨论 6.4 软件功能模块划分讨论 6.5 软件GUI设计讨论
6.6 软件设计模式与软件工程管理 教学要求:
从设计并开发一个简单的“点对点文件传输软件”入手,初步掌握通信软件的设计和开发。 其它教学环节:4实验学时 + 3研究学时
实验七:点对点的文件传输软件开发(4学时)
要求:完成课程大作业“点对点的文件传输软件开发” 研究:完成课程大作业“点对点的文件传输软件开发”,提交课程设计报告,并进行答辩。(3学时)
四、教学重点、难点及教学方法
重点:HTTP、TCP协议及通信协议设计技术、WINSOCK LIB的使用、通信软件架构。 难点:WINSOCK LIB的使用、通信协议分组结构设计、通信软件架构。
五、考核方式及成绩评定方式:考查
六、教材及参考书目
1、推荐教材:
无,由科任教师提供。—已备有电子版资料和教材。
2、主要参考书:
[1] Sniffer中文使用教程。中国协议分析网http://www.daodoc.com
[3] 周良忠 译。 C++面向对象多线程编程。北京:人民邮电出版社,2003.4.[4] 侯捷 译。Win32多线程程序设计。 华中科技大学出版社,1997.1.[5] 侯捷 译。C++标准程序库。网络电子版资料。
修(制)订人: 审核人:
2010年 3 月30 日