Visual C++实用教程 教学课件 ppt 作者 周进 朱训林 张宏林 第12章-网络编程

上传人:E**** 文档编号:89404429 上传时间:2019-05-24 格式:PPT 页数:47 大小:1.12MB
返回 下载 相关 举报
Visual C++实用教程 教学课件 ppt 作者  周进 朱训林 张宏林 第12章-网络编程_第1页
第1页 / 共47页
Visual C++实用教程 教学课件 ppt 作者  周进 朱训林 张宏林 第12章-网络编程_第2页
第2页 / 共47页
Visual C++实用教程 教学课件 ppt 作者  周进 朱训林 张宏林 第12章-网络编程_第3页
第3页 / 共47页
Visual C++实用教程 教学课件 ppt 作者  周进 朱训林 张宏林 第12章-网络编程_第4页
第4页 / 共47页
Visual C++实用教程 教学课件 ppt 作者  周进 朱训林 张宏林 第12章-网络编程_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《Visual C++实用教程 教学课件 ppt 作者 周进 朱训林 张宏林 第12章-网络编程》由会员分享,可在线阅读,更多相关《Visual C++实用教程 教学课件 ppt 作者 周进 朱训林 张宏林 第12章-网络编程(47页珍藏版)》请在金锄头文库上搜索。

1、第12章 网 络 编 程,在众多的计算机技术中,网络技术是和人们关系最紧密的计算机技术之一。 近年来,网络以超乎想象的速度飞快发展,在这种趋势下,编写网络应用程序就成为一项常见的技能。,本章将系统地介绍网络编程的有关知识,主要内容如下。 网络编程的基础知识。 网络应用程序的基本结构及流程。 WinSock类详解。,12.1 网络编程的基础知识,当今主要的网络模型有OSI参考模型、TCP/IP参考模型、NetBEUI参考模型和IPX/SPX参考模型,其中最常用的是TCP/IP参考模型,本章也以TCP/IP参考模型来讲解网络编程技术。,12.1.1 Socket简介 上世纪80年代初,加利福尼亚大

2、学伯克利分校在UNIX操作系统下实现了TCP/IP,它们为TCP/IP网络通信开发了一个应用程序接口(API),这个API称为Socket(套接字)接口。,Socket给程序员提供了一个高层接口,它的出现使得程序员在编写网络应用程序时只需要调用函数,对网络的底层细节并不需要精通,因此十分方便。,Socket在UNIX上的巨大成功使得人们迫切想要在Windows上也得到同样的便利。,12.1.2 Windows套接字规范简介 Windows套接字几个标志性的版本有WinSock 1.0、WinSock 1.1和WinSock 2.0,分别介绍如下。,1WinSock 1.0 WinSock 1.

3、0是网络软件供应商和用户协会细致周到的工作结晶。 WinSock 1.0规范的发布是为了让网络软件供应商和应用程序开发者都能够开始建立各自符合WinSock标准的实现和应用程序。,2WinSock 1.1 WinSock 1.1除了继承WinSock 1.0的准则和结构外,还作了一些必要的改动。 这些改动除了包含了一些更加清晰的说明和对WinSock 1.0的小改动之外,还包含了如下重大的变更。, 为了更加简单的得到主机名和地址,增加了gethostname()函数。 在DLL中保留了小于1000的序数,而对大于1000的序数则没有限制,这使WinSock供应商可以在DLL中加入自己的界面,而

4、不用担心所选择的序数会和WinSock将来的版本冲突。, 增加了WSAStartup()函数和WSACleanup()函数之间的关联,要求两个函数对应,这使得应用程序开发者和第三方DLL在使用WinSock实现时不需要考虑其他函数对这套API的调用。, 调整函数in_addr()的返回类型,in_addr的结构改为无符号长整型,这个改动是为了适应不同的C编译器对返回类型为4字节结构函数的不同处理方法。, 把WSASsyncSelect()函数语义从“边缘触发”改为“电平触发”,这种方式大大简化了应用程序对这个函数的调用。, 改变了ioctlsocket()函数中FIONBIO的语义。 如果套接

5、字还未完成WSASsyncSelect()函数的调用,则该函数返回失败。, 为了符合RFC1122,在套接字选项中增加了TCP_NODELAY。 不过WinSock1.1版本只支持TCP/IP。,3WinSock 2.0 WinSock 2.0是WinSock 1.1发展的一个比较重大的变革。 它可以支持多种协议,并且为了能与WinSock 1.1更好地实现其兼容性,WinSock 2.0在WinSock 1.1基础上向后兼容,即源码和二进制代码。,这就实现了WinSock应用程序和任何版本的WinSock实现之间的最大的互操作性,同时也减轻了WinSock应用程序使用者、网络协议栈提供者和服

6、务提供者的负担。,12.2 网络应用程序,12.2.1 网络应用程序的基本模型 在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。,12.2.2 建立套接字对象 函数socket()可以创建一个socket对象,socket()函数的原型如下。 SOCKET socket(int af, int type, int protocol);,表12-1 套接字类型取值及说明,表12-2 网络协议取值与套接字类型关系,12.2.3 绑定地址 创建好Socket后,

7、通常要将本地地址附加到所创建的套接字上以便能够有效地标识此套接字,这个过程由bind()函数来实现,它的原型如下。 int bind(SOCKET s, const struct sockaddr FAR *name, int namelen);,12.2.4 建立连接 函数connect()可以实现客户机和服务器的连接,其原型如下。 int connect(SOCKET s, const struct sockaddr FAR *name, int namelen);,12.2.5 监听socket 对于服务器端来说,在它接受客户机的连接之前,首先要监听。 只有进入了监听模式,才能接受来自客

8、户机的连接。,这一点可以通过listen()函数实现,它的原型如下。 int listen(SOCKET s, int backlog);,12.2.6 数据传输 当客户机和服务器的连接建立以后,便可以进行数据的传输。 数据的传输是网络通信的最终目的,前面所作的工作就是为了客户机可以和服务器传输数据。 数据传输又包括数据发送和数据接收。,1数据发送 数据发送是通过send()函数来实现的,它的原型如下。 int send(SOCKET s, const char FAR *buf, int len, int flags);,2数据接收 数据接收通过函数recv()实现,其原型如下。 int r

9、ecv(SOCKET s, const char FAR *buf, int len, int flags);,12.3 WinSock类,在12.2节中简单介绍了直接利用WinSock API进行网络传输的基本步骤以及主要函数的使用方法,而实际利用Visual C+ 6.0开发网络应用程序的时候,很少直接利用这些API进行编程,因为MFC已经把这些API都封装到MFC提供的类中了。,本节将详细介绍在网络编程中经常用到的MFC提供的两个类,即CAsyncSocket类和CSocket类。 它们的继承关系如图12-1所示。,图12-1 CAsyncSocket类和 CSocket类的继承关系,1

10、2.3.1 CAsyncSocket类 CAsyncSocket类在很低的级别上封装了Windows Socket API,该类可以使程序员用面向对象的方法进行Socket编程,而且可以非常方便地调用其他MFC对象。,要使用一个CAsyncSocket对象,则先调用它的构造函数,然后调用Create()函数,以创建一个套接字句柄(SOCKET类型)。 CAsyncSocket对象既可以在栈中,也可以在堆中。,对于一个服务器套接字调用Listen()成员函数进行监听,对于一个客户套接字调用Connect()成员函数来请求连接。 在接收一个连接请求时,服务器套接字应该调用一个Accept()函数来

11、接收连接请求。,完成之后,如果CAsyncSocket对象在栈中构造,则当对象超出范围时,会自动调用析构函数;如果是在堆上被创建的,必须调用delete来删除此对象。 CAsyncSocket类的主要成员函数如表12-3所示。,表12-3 CAsyncSocket类主要成员函数及说明,续表,续表,续表,续表,12.3.2 CSocket类 CSocket类是CAsyncSocket类的派生类,它最大的特点是提供了可以同CArchive和CSocketFile这两个类协同工作的接口。,其中CArchive类是一个存档类,它是将用户的数据保存为永久性存储对象的一种技术,在此它是用于同CSocketFile类相关联而提供数据传输文件化的一种技术。,1CArchive对象与串行化技术 2用CSocket类的编程步骤 3CSocket类的主要成员函数,表12-4 CSocket类主要成员函数及说明,小 结,本章介绍了网络编程的基本知识及基本步骤,并且详细介绍了WinSock类。 相信通过本章的学习,读者可以编写简单的网络应用程序。 在本章最后,安排了一个网络聊天系统综合实例,可以给读者提供参考。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号