1 / 28
文档名称:

第九章 二哥.ppt

格式:ppt   大小:815KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第九章 二哥.ppt

上传人:marry201208 2018/11/22 文件大小:815 KB

下载得到文件列表

第九章 二哥.ppt

相关文档

文档介绍

文档介绍:第九章高级网络编程设计
当要设计有特殊功能的网络应用程序时,如对HTTP服务器功能进行扩展的程序、电子邮件程序或使用电话线路进行通信的程序,第8章介绍的Winsock API就不能满足要求了。
本章介绍的一些网络编程API,可以快速、高效地设计这类程序。
第九章高级网络编程设计
MFC提供的WinSock类
信报API(MAPI)
API
其他网络程序设计API
MFC提供的Winsock类
MFC(Microsoft Foundation Classes,微软基本类库)编程技术

定义了用于网络编程的Winsock类,类名为CAsyncSocket;
还定义了一个派生于CAsyncSocket的CSocket类。
CAsyncSocket类
CAsyncSocket类封装了一些基本的Windows Sockets API函数,它提供了与较低层Windows Sockets对话的接口。
一般适合于有一定基础的网络编程者使用,可方便地进行底层的网络事件通知及信息回叫控制等操作。
CSocket类
派生于CAsyncSocket类,继承了父类中一些常用、易懂的Windows Sockets API函数,并对CAsyncSocket底层中较难控制的一些API函数或成员函数进行了处理,为Winsock API提供了一个更高级别的编程接口。
它通过MFC CArchive对象进行信息的接收和发送操作,使得套接口数据输入和输出如同使用MFC的文档一样简捷、易用。
同时,它支持模块化的后台信息处理,解决了CAsyncSocket中较难克服的多线程处理问题。
 BACK
CSocket类的继承关系
CSocket成员函数
(1) BOOL Create(UINT nSocketPort=0,int nSocketType=SOCK STREAM,Iong lEvent=FD_READ|FD_WRITE|FD_OOB|FD_ ACCEPT|FD_CONNECT|FD_CLOSE,LPCTSTR lpszSocketAddress=NULL)
(2) BOOL Listen(int nConnectionBacklog=5)
(3) BOOL Connect(LPCTSTR lpszHostAddress,UINT nHostPort)
(4) virtual void Close()
图9-1 CSocket类的继承关系
利用CSocket类进行传输的辅助类介绍
CSocketFile类
CS0cketFile继承了CFile类,见左图,它可以很自如地用
来在基于Windows Socket网络上传输数据。
首先,将一个建立连接CSocket对象实例作为参数进行初始化;
然后,将已经初始化的CSocketFile对象连接到CArchive对象上,接着将数据串行化,以使用MFC系列来简化发送和接收数据,最终实现利用网络的Socket传输和本机上的流传输样简单。
图9-2 CSocketFile类的继承关系
CSocketFile类成员函数:
CSocketFile用到的成员函数只有构造函数。
CSocketFile::CSocketFile(CSocket* pSocket,BOOL patible=TRUE);
其中: pSocket:连接到CSocketFile对象的套接口。
patible:指示该文件对象是否与一个CArchive对象一起使用。只有当希望在单机方式下来使用这个CSocketFile别象时,才传递FALSE。因为仅有CSocketFile类实例本身并没有什么意义,所以通常将其置为TRUE。
CArchive类
cArchive类没有基类。cArchlve允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以从永久存储中装载对象,并在内存中重新构造它们。使数据永久保留的过程就叫作“串行化”。
一般可以把一个cArchive对象看作一个二进制流,可以将
它和输入输出流iostream类的用法进行比较。cArchive对象一般和一个文件类关联cFile类或cSockcetFile类。
输入输出流是加工处理ASCII字符,而cArchive类的用处是高效、无冗余地处理二进制数据。
在cArchlve类中,重载了提取(>))和插入(<<)运算符,它是方便的归档编程接口,主要点持cObject派生类。
MFC CSocket类的通信流程