课程内容:
理解客户机/服务器模型的工作机理。
掌握套接字的概念。
了解相关的WinSock相关知识及常用的API函数。
掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理。
通过程序实例,了解基于TCP和UDP的程序设计方法。
一、网络编程接口介绍

编程界面有两种形式:
由内核提供的系统调用,在windows下表现为windows api函数
另一种是以程序库方式提供的各种函数和类,比如MFC socket类
它们共同构成了程序员直接可见的网络应用编程界面。
二、网络程序的工作模式:网络应用程序一般是以客户机服务器模型的方式工作的

在客户机服务器模型中,服务器程序处于被动状态,提供某种服务,而客户机应用程序处于主动地位,主动请求服务器程序的服务。
服务器特点:
一般启动后就一直处于运行状态,以等待客户机进程的请求;
使用的端口往往是熟知端口,便于客户机进程连接请求;
一般拥有较多的系统资源,以便及时响应各个客户机进程的请求;
可以并行处理多个客户机进程的请求,但数目是有一定的限制;
在通信时一般处于被动的一方,不需要知道客户机的IP地址和端口信息。
客户机特点:
在需要服务器进程的服务时将向服务器进程请求服务,并建立通信连接,得到满足并完成处理后就终止通信连接;
使用向系统申请的临时端口与服务器进程进行通信,通信完成后将释放该端口;
拥有相对较少的系统资源;
在通信时属于主动的一方,需要事先知道服务器的IP地址和端口信息。
三、通信进程的标识方式
进程的标识:进程号
通信进程标识:三元组(协议、IP、端口号)
两个通信进程的唯一标识:五元组(协议、源IP、源端口、目的IP、目的端口)

