重庆邮电大学软件工程学院

《通信软件技术及应用》教学大纲(2013版)

Telecommunications Software Technology and Application

课程代码:131151 学时:32 学分:2

理论学时:24 实验或讨论学时:8

适用专业:软件工程 课程性质:选修

执笔人: 张学旺 审定人:张学旺

一、课程说明(500字左右)

1、课程简介(性质、地位)

《通信软件技术及应用》课程是软件工程本科专业的一门重要的专业课程,它的先修课程主要有《面向过程程序设计》(C语言)、《面向对象程序设计》(C++语言)、《数据结构》、《操作系统》、《计算机网络》、《数据库》。通过课程教学,使学生熟悉并掌握通信网络程序设计的基本知识和基本技能,应用它们解决通信网络程序设计中的问题。

2、课程教学目标

本课程讲授C/C++等主流程序设计语言在Windows平台下的通信网络程序设计的基本知识,培养和提高本科生的网络通信程序设计的基本编程技能。强调通信网络原理与通信网络程序设计的关系,让学生理解通信网络程序设计的深层次机理。重点讲解注重Socket通信的初级/高级编程、网络服务编程、HTTP协议编程、WinPcap应用编程、CMPP协议编程等的方法和技术,引导本科生逐步地掌握Socket通信机制和通信网络协议编程的方法和技术,学会应用通信网络编程的方法和技术解决通信软件开发中的问题。

3、课程教学改革

强化基础,注重能力培养,理论与实践紧密结合。

拟出版一本教材。

二、教学大纲内容(不可只列章节题目,应写出具体内容)

(一)课程理论教学

要求每章内容后列出重点、难点、建议教学方法、思考题及需开设的实验项目名称等;

序号

授课内容摘要

(含授课内容,参考书,自学提纲,学习方法等)

课内学时

重点及要求

课外作业

实验项目

1

授课内容1:通信软件概述(通信软件的概念与特点;Windows程序基本观念)

参考书:参见附录

自学提纲:教材第1章+补充讲义

学习方法:教师精讲+学生预习/听讲/复习

2

解本课程结构及学习方法;

理解通信软件的概念,了解通信软件的特点;

了解Win32 SDK程序设计的基本流程;

理解Win32程序运作的本质(Message Based,Event Driven)。

安装WinSock编程工具(例如VC++. NET2010)

2

授课内容2:网络程序通信模型(客户/服务器模型,浏览器/服务器模型,P2P模型);网络数据的内容与形态(整数的长度与符号,字节顺序,结构的对齐与填充,网络数据传输形态,字符编码,数据校验)

参考书:参见附录

自学提纲:教材第2章+教材第3章

学习方法:教师精讲+学生预习/听讲/复习

2

理解客户/服务器模型、浏览器/服务器模型、P2P模型;

了解字节顺序、结构的对齐与填充、网络数据传输形态、字符编码、数据校验。

3

授课内容3:TCP/IP协议软件接口(TCP/IP协议软件接口的位置和功能、网络通信的基本方法、套接字的基本概念和通信过程、Windows套接字的基本概念和编程接口)

参考书:参见附录

自学提纲:教材第4章+补充讲义

学习方法:教师精讲+学生预习/听讲/复习

2

了解TCP/IP协议软件接口的位置和功能;

了解网络通信的基本方法;

理解套接字的基本概念和通信过程;

理解Windows Socket的组成;

理解Windows Socket的初始化和释放、控制方法和地址的描述与转换等。

4

授课内容3:流式套接字编程(流式套接字编程模型、基本函数与操作、TCP的流传输控制、面向连接程序的可靠性保护)

参考书:参见附录

自学提纲:教材第9章+补充讲义

学习方法:教师精讲+学生预习/听讲/复习

4

理解流式套接字编程模型;

理解流式套接字基本API函数的使用方法;

理解TCP的流传输控制方法;

了解面向连接程序的可靠性保护。

编程调试教材示例源码。

实验一、实验四

5

授课内容4:数据报套接字编程(数据报套接字编程模型、基本函数与操作、提高无连接程序的可靠性)

参考书:参见附录

自学提纲:教材第9章+补充讲义

学习方法:教师精讲+学生预习/听讲/复习

4

理解数据报套接字编程模型;

理解数据报套接字基本API函数的使用方法;

了解提高无连接程序的可靠性的方法。

编程调试教材示例源码。

实验二、实验三

6

授课内容5:WinPcap编程(WinPcap概述、WinPcap结构、WinPcap编程环境配置、wpcap.dll的常用数据结构和函数)

参考书:参见附录

自学提纲:教材第5章

学习方法:教师精讲+学生预习/听讲/复习

4

了解WinPcap及其结构;

掌握WinPcap编程环境配置方法;

熟悉WinPcap的常用数据结构和函数;

理解使用WinPcap捕获数据包的编程方法。

编程调试教材示例源码。

7

授课内容6:协议分析器程序(编程训练目的、编程训练要求、相关知识、编程训练设计分析)

参考书:参见附录

自学提纲:补充讲义

学习方法:教师精讲+学生预习/听讲/复习

2

了解协议分析器基本原理;

理解TCP/IP分层体系结构;

理解数据的封装与解析;

理解协议分析器总体结构设计;

理解数据捕获模块设计思路与流程图;

理解协议解析模块设计思路与流程图。

使用协议分析器程序进行简单的互联网协议分析

8

授课内容10:网络协议实例:短消息协议CMPP(协议原理)

参考书:参见附录

自学提纲:自编讲义

学习方法:教师精讲+学生预习/听讲/复习

4

了解短消息协议CMPP中的网络结构;

理解短消息协议CMPP的功能;

了解短消息协议CMPP的协议栈;

理解短消息协议CMPP中的通信方式;

理解短消息协议CMPP3.0的消息定义(仅SP业务软件开发部分)。

(二)课程实验教学(无实验学时的课程不要此部分)

列出实验序号、实验名称、每次实验的学时;明确每次实验的目的、要求

序号

实验名称

学时

内容提要

1

基于流式套接字的时间同步服务器设计

2

熟悉流式套接字编程的基本流程;

完成TCP连接建立过程;

完成基于TCP协议的数据发送与接收功能;

完成服务器本地时间获取与格式转换功能。

2

数据报套接字网络功能框架设计

2

熟悉数据报套接字的基本流程;

完成基于数据报套接字初始化和创建功能;

完成地址转换功能;

完成基于数据报套接字的套接字关闭和释放功能;

以类的形式对程序框架进行封装。

3

基于数据报套接字的服务器回射程序设计

2

熟悉数据报套接字编程的基本流程;

完成基于UDP协议的数据发送与接收功能;

完成控制台的输入与输出功能。

4

基于I/O复用模型的回射服务器程序设计

2

熟悉流式套接字和数据报套接字编程的基本流程;

掌握select函数的具体使用方法;

完成基于多个套接字的I/O复用功能;

使用TCP协议和UDP协议完成回射数据的发送与接收功能;

完成控制台的输入与输出功能。

三、本课程考核方式、方法

课程成绩采取100分制,由二部分组成,如下所示:

考勤与平时表现: 20%

课程大作业: 80%

附录:教材及教学参考书目

教材:《Windows网络编程》 ,机械工业出版社,刘琰、王清贤、刘龙、陈熹编著。

《Windows网络编程课程设计》 ,机械工业出版社,刘琰、罗军勇、常斌编著。

教学参考书目:

1)《短消息增值业务及软件开发》,自编讲义,张学旺 编著。

2)《通信软件设计基础(第2版)》,北京邮电大学出版社,宋茂强 主编。

3)《网络程序设计与开发》,清华大学出版社,鲁斌、李莉 主编。

4)《深入浅出MFC(第2版)》,华中科技大学出版社,侯俊杰 著。

5)《消息设计与开发——分布式应用开发的核心技术》,电子工业出版社,何小朝 著。

6)《ACE技术内幕——深入解析ACE技术架构设计与实现原理》,机械工业出版社,潘荣 著。