《Linux网络编程》课程教学大纲
课程代码 课程类型:专业任选课 适合专业: 计算机科学与技术
总学时数:48 学分:3
一、课程教学目的与任务
《Linux网络编程》课程是计算机科学与技术专业的一门专业必选课。本课程的任务是通过本课程教学,使学生掌握在Linux操作系统下网络编程的基本知识、程序设计的基本方法。为从事Linux下网络开发、应用等方面工作打下良好基础。
二、理论教学的基本要求
了解Linux操作系统的相关知识;掌握Linux编程环境的配置、使用;掌握Linux下文件系统的组织和操作方法;掌握Linux程序、进程和线程的概念和使用方法;了解TCP/IP、HTTP和FTP协议,掌握TCP和UDP网络编程的基础知识;掌握套接字及使用方法;了解Linux下服务器模型选择以及IPv6的相关知识。
三、实践教学的基本要求
实验(实训)学时
16
应开实验(实训)项目个数
6
序号
实验(实训)项目名称
实验(实训)要求
学时分配
实验(实训)
类型
备注
1
熟悉Linux下编程工具vim的使用
必做
2
验证性
2
使用gcc生成静态、动态链接库及库函数的使用
必做
2
验证性
3
文件操作函数的使用
必做
2
验证性
4
进程和线程的编程方法
必做
2
验证性
5
TCP网络编程
必做
2
验证性
6
UDP网络编程
必做
2
验证性
7
套接字的使用
必做
4
验证性
实践教学的目的是通过设置验证性和设计性的实验培养学生团队合作开发中,利用C语言在Linux下进行网络编程的基本能力,实验教学采用演练结合的实验方式;实验考核由三部分组成:实验操作、实验报告、实验纪律。
四、教学学时分配
章次
各章名称
学时分配
讲授
实验(实训)
讨论
习题
考核
其他
小计
1
Linux操作系统概述
2
0
2
2
Linux编程环境
2
2
4
3
文章系统简介
2
2
4
4
程序、进程和线程
2
2
4
5
TCP/IP协议族简介
2
2
4
6
应用层网络服务器简介
2
0
2
7
TCP网络编程基础
2
2
4
8
服务器和客户端信息的获取
2
2
4
9
数据的IO和复用
2
0
2
10
基于UDP协议的接收和发送
4
2
6
11
高级套接字
2
0
2
12
套接字选项
2
0
2
13
原始套接字
2
2
4
14
服务器模型选择
2
0
2
15
IPv6简介
2
0
2
合计
=SUM(ABOVE) 32
=SUM(ABOVE) 16
=SUM(ABOVE) 48
五、教学内容
第一章 Linux操作系统概述
教学目的和要求:使学生了解Linux的发展历史和Linux操作系统的特点。
教学重点:Linux操作系统的特点。
教学难点:Linux操作系统架构。
教学内容:Linux发展的历史;Linux与UNIX操作系统的异同;Linux操作系统的架构的简单介绍。
第二章 Linux编程环境
教学目的和要求:使学生掌握Vim编辑器的使用;了解gcc编译、链接;了解Makefile的编写;会使用GDB调试程序。
教学重点:gcc编译器的使用。
教学难点: GDB的使用。
教学内容:vim编辑器的使用;gcc命令的使用;Makefile的编写;GDB的使用。
第三章 文件系统简介
教学目的和要求:了解Linux下文件的内涵和Linux下的文件布局和文件系统的树形结构;了解Linux下的普通文件、设备文件和虚拟文件系统的含义;掌握文件的操作方法、文件句柄的含义。
教学重点:文件系统的操作方法。
教学难点:文件系统的各种操作函数的使用。
教学内容:Linux下的文件系统;文件的通用操作方法。
第四章 程序、进程和线程
教学目的和要求:理解程序、进程和线程的概念;掌握进程的几种产生方式;理解进程间通信和同步的方法;了解多线程的编程方法和线程间的同步。
教学重点:进程间通信和同步。
教学难点:多线程的编程方法与同步。
教学内容:程序、进程和线程的概念;进程的产生方式;进程间通信和同步;Linux下线程。
第五章 TCP/IP协议族简介
教学目的和要求:了解OSI网络分层结构;理解TCP/IP协议栈;了解IP地址分类与TCP/UDP端口;理解主机字节序和网络字节序。
教学重点:TCP/IP协议栈。
教学难点: 主机字节序和网络字节序。
教学内容:OSI网络分层介绍;TCP/IP协议栈;IP地址分类与TCP/UDP端口;主机字节序和网络字节序。
第六章 应用层网络服务程序简介
教学目的和要求:理解HTTP协议和服务、FTP协议和服务、TELNET协议和服务、NFS协议和服务、自定义网络服务。
教学重点:HTTP协议和服务、FTP协议和服务。