2024年3月24日发(作者:)

第1章 Visual C++网络编程概述

Visual C++(后面简写为VC)网络编程是指用户使用MFC类库(微软基础类

库)在VC编译器中编写程序,以实现网络应用。用户通过VC编程实现的网

络软件可以在网络中不同的计算机之间互传文件、图像等信息。本章将向用户

介绍基于Windows操作系统的网络编程基础知识,其开发环境是VC。在VC

编译器中,使用Windows Socket进行网络程序开发是网络编程中非常重要的一

部分。

1.1 网络基础知识

如果用户要进行

VC

网络编程,则必须首先了解计算机网络通信的基本框

架和工作原理。在两台或多台计算机之间进行网络通信时,其通信的双方还必

须遵循相同的通信原则和数据格式。本节将向用户介绍

OSI

七层网络模型、

TCP/IP

协议以及

C/S

编程模型。

1.1.1 OSI七层网络模型

OSI

网络模型是一个开放式系统互联的参考模型。通过这个参考模型,用户

可以非常直观地了解网络通信的基本过程和原理。

OSI

参考模型如图

1.1

所示。

图1.1 OSI七层网络模型

用户从

OSI

网络模型可以很直观地看到,网络数据从发送方到达接收方的

过程中,数据的流向以及经过的通信层和相应的通信协议。事实上在网络通信

的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包

头数据。而在接收方恰好相反,数据通过每一层时都会被该层协议剥去相应的

包头数据。用户也可以这样理解,即网络模型中的各层都是对等通信。在

OSI

七层网络模型中,各个网络层都具有各自的功能,如表

1.1

所示。

表1.1 各网络层的功能

物理硬件层

数据链路层

网络层

数据传输层

会话层

表示层

应用层

表示计算机网络中的物理设备。常见的有计算机网卡等

将传输数据进行压缩与加压缩

将传输数据进行网络传输

进行信息的网络传输

建立物理网络的连接

将传输数据以某种格式进行表示

应用程序接口

注意:在表1.1中列出了OSI七层网络模型中各层的基本功能概述。用户根据这些基本

的功能概述会对该网络模型有一个比较全面的认识。

1.1.2 TCP/IP协议

TCP/IP

协议实际上是一个协议簇,其包括了很

多协议。例如,

FTP

(文本传输协议)、

SMTP

(邮

件传输协议)等应用层协议。

TCP/IP

协议的网络模

型只有

4

层,包括数据链路层、网络层、数据传输

图1.2 TCP/IP网络协议模型

层和应用层,如图

1.2

所示。

TCP/IP

网络编程模型中,各层的功能如表

1.2

所示。

表1.2 TCP/IP网络协议各层功能

数据链路层

网络层

数据传输层

应用层

IP

协议等互联协议

为应用程序提供通信方法,通常为

TCP

UDP

协议

负责处理应用程序的实际用于层协议

网卡等网络硬件设备以及驱动程序

在数据传输层中,包括了

TCP

UDP

协议。其中,

TCP

协议是基于面向连

接的可靠的通信协议。其具有重发机制,即当数据被破坏或者丢失时,发送方

将重发该数据。而

UDP

协议是基于用户数据报协议,属于不可靠连接通信的协

议。例如,当用户使用

UDP

协议发送一条消息时,并不知道该消息是否已经到

达接收方,或者在传输过程中数据已经丢失。但是在即时通信中,

UDP

协议在

对一些对时间要求较高的网络数据传输方面有着重要的

作用。

1.1.3 C/S编程模型

C/S

编程模型是基于可靠连接的通信模型。在通信的双方必须使用各自的

IP

地址以及端口进行通信。否则,通信过程将无法实现。通常情况下,当用户

使用

C/S

模型进行通信时,其通信的任意一方称为客户端,则另一方称为服务

器端。