课程简介 32学时(教学+实验)

教学目标

本课程主要为进行 Sockets 网络编程的学生提供帮助, 课程内容包括 TCP/IP 网络协议的基本概念,Sockets 网络编程的基本原理。 在阐明 Sockets 套接口类型以及面向连接/非连接协议等基本概念的基础上, 介绍简单的客户/服务器程序的编写方法和主机名/网络名查询程序的编写方法。 另外,也简单介绍一下并发客户服务程序、守护进程、网络安全程序设计等较为高级的主题。

  • 通过利用套接字(Socket)应用程序接口编程,实现不同程序不同计算机之间的通讯, 进一步巩固程序设计语言 C、计算机操作系统和计算机网络等先行课程基础。
  • 为初学者或者职业技术人员进行网络编程提供指导。
  • 既可以通过学习实现独立开发新的网络软件,也可以通过网络编程的学习进一步了解网络各种组件之间的工作原理。

This course aims to teach students to write programs that communicate with each other using an application program interface (API) known as sockets. It will offer guidance on network programming for beginners as well as professionals, for those developing new network-aware applications as well as those maintaining existing code, and for people who simply want to understand how the networking components of their system function.

前导知识

程序设计语言(C 或者 C++),操作系统,计算机网络

教材

杨继张译, 史缔文斯等著《UNIX网络编程》, 清华大学出版社

主要参考书

W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, 《UNIX Network Programming》, Addison Wesley   下载

考核方式

平时出勤 (10%) + 大作业 (20%) + 期末闭卷考试 (70%)

教学内容

理论

  • TCP/IP 协议简介(4学时):了解 TCP/IP 协议的起源与发展,知道 TCP/IP 协议的体系结构和特点以及套接字等概念。
  • Sockets 编程原理(10学时):套接字编程基本概念,基本套接字系统调用,典型套接字调用过程。
  • UNIX Sockets 程序设计(12学时):UNIX Sockets简介,异步选择机制,阻塞处理方法, 面向连接的程序设计举例,面向非连接的程序设计举例。
  • 高级 Sockets 编程(6学时):并发客户服务程序,UDP广播,网络安全程序设计等。

实践

  • 时间获取客户/服务器程序的设计与实现, 通过对这个程序不断地进行改进和升级等实践环节熟悉计算机网络系统中各个组件的工作原理。
  • TCP 回射服务器程序的设计、实现和不断该进升级, 通过这个实践来学习和实践 socket 套接字编程基本概念,基本套接字系统调用和典型套接字调用过程等。

课件下载