1.1.1 Visual C++(www.cppentry.com)网络编程(www.cppentry.com)概述(1)
Visual C++(www.cppentry.com)(后面简写为VC)网络编程(www.cppentry.com)是指用户使用MFC类库(微软基础类库)在VC编译器中编写程序,以实现网络应用。用户通过VC编程(www.cppentry.com)实现的网络软件可以在网络中不同的计算机之间互传文件、图像等信息。本章将向用户介绍基于Windows操作系统的网络编程(www.cppentry.com)基础知识,其开发环境是VC。在VC编译器中,使用Windows Socket进行网络程序开发是网络编程(www.cppentry.com)中非常重要的一部分。
1. 网络基础知识
如果用户要进行VC网络编程(www.cppentry.com),就必须首先了解计算机网络通信的基本框架和工作原理。在两台或多台计算机之间进行网络通信时,通信的双方还必须遵循相同的通信原则和数据格式。
接下来将首先向读者介绍OSI七层网络模型、TCP/IP协议以及C/S编程(www.cppentry.com)模型。
(1) OSI七层网络模型
OSI网络模型是一个开放式系统互联的参考模型。通过这个参考模型,用户可以非常直观地了解网络通信的基本过程和原理。OSI参考模型如图1-1所示。
|
| 图1-1 OSI七层网络参考模型 |
从如图1-1所示的OSI网络模型中可以看到网络数据从发送方到达接收方的过程中数据的流向以及经过的通信层和相应的通信协议。
事实上,在网络通信的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包头数据。而在接收方恰好相反,数据通过每一层时,都会被该层协议剥去相应的包头数据。用户也可以这样理解--即网络模型中的各层都是对等通信的。在OSI七层网络模型中,各个网络层都具有各自的功能,如表1-1所示。
表1-1 各网络层的功能
|
协议层名< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
功能概述 |
|
物理硬件层 |
表示计算机网络中的物理设备。常见的有计算机网卡等 |
|
数据链路层 |
将传输数据进行压缩与解压缩 |
|
网络层 |
将传输数据进行网络传输 |
|
数据传输层 |
进行信息的网络传输 |
|
会话层 |
建立物理网络的连接 |
|
表示层 |
将传输数据以某种格式进行表示 |
|
应用层 |
应用程序接口 |
(2) TCP/IP协议
TCP/IP协议实际上是一个协议簇,其中包括了很多协议。例如FTP(文件传输协议)、SMTP(邮件传输协议)等应用层协议。TCP/IP协议的网络模型只有4层,包括数据链路层、网络层、数据传输层和应用层,如图1-2所示。
|
| 图1-2 TCP/IP网络协议模型 |
在TCP/IP网络编程(www.cppentry.com)模型中,各层的功能如表1-2所示。
表1-2 TCP/IP网络协议各层的功能
|
协议层名 |
功能概述 |
|
数据链路层 |
网卡等网络硬件设备以及驱动程序 |
|
网络层 |
IP协议等互联协议 |
|
数据传输层 |
为应用程序提供通信方法,通常为TCP、UDP协议 |
|
应用层 |
负责处理应用程序的实际应用层协议 |