1 / 64
文档名称:

《mfc网络编程》.ppt

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

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

分享

预览

《mfc网络编程》.ppt

上传人:相惜 2021/7/15 文件大小:910 KB

下载得到文件列表

《mfc网络编程》.ppt

文档介绍

文档介绍:MFC WinSock类的编程
为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows Socket网络通信程序,提供了两种编程模式。
.
CAsyncSocket类,在很低的层次上对Windows Sockets API进行了封装。
它的成员函数和Windows Sockets API的函数调用直接对应。一个CAsyncSocket对象代表了一个Windows套接字。它是网络通信的端点。除了把套接字封装成C++的面向对象的形式供程序员使用以外,这个类唯一所增加的抽象就是将那些与套接字相关的Windows消息变为CAsyncSocket类的回调函数。
.
CSocket类,从CAsyncSocket类派生,是对Windows Sockets API的高级封装。CSocket类继承了CAsyncSocket类的许多成员函数,用法一致。CSocket类的高级表现在三个方面:
(1)CSocket结合archive类来使用套接字。
(2)CSocket管理了通信的许多方面,如字节顺序问题和字符串转换问题。
(3)CSocket类为Windows消息的后台处理提供了阻塞的工作模式。
.
这两个类提供了事件处理函数,编程者通过对事件处理函数进行重载,可方便地对套接字发送数据、接收数据等事件进行处理。同时,可以结合MFC的其它类来使用这两个套接字类,并利用MFC的各种可视化向导,从而大大简化了编程。
在MFC中,,在这个文件中定义了CAsyncSocket,CSocket,和CSocketFile这三个套接字类。
.
CasyncSocket类
CAsyncSocket类从Cobject类派生而来,如图1所示:
图1 CAsyncSocket类的派生关系
.
创建CasyncSocket类对象
本书将CAsyncSocket类对象称为异步套接字对象。创建异步套接字对象一般分为两个步骤,首先构造一个CAsyncSocket对象,再创建该对象的底层的SOCKET句柄。
1.创建空的异步套接字对象
通过调用CAsyncSocket类的构造函数,创建一个新的空CAsyncSocket类套接字对象,构造函数不带参数。然后必须调用它的Create成员函数,来创建底层的套接字数据结构,并绑定它的地址。
.
有两种使用方法,会在不同的位置创建。
(1)如:CAsyncSocket aa;
(。。。。。。);
(2)如: CAsyncSocket* Pa;
Pa = new CAsyncSocket;
Pa->Create(。。。。。。);
.
2.创建异步套接字对象的底层套接字句柄
通过调用CAsyncSocket类的Create()成员函数,创建该对象的底层套接字句柄,决定套接字对象的具体特性。调用格式为:
BOOL Create( UINT nSocketPort=0,
Int nSocketType = SOCK_STREAM,
Long Ievent = FD_READ | FD_WRITE | FD_OOB |FD_ACCEPT |FD_CONNECT | FD_CLOSE,
LPCTSTR lpszSocketAddress = NULL );
.
举例:创建一个使用27端口的流式异步套接字对象。
CAsyncSocket* pSocket = new CAsyncSocket;
int nPort = 27;
pSocket->Create( nPort, SOCK_STREAM );
.
关于CAsyncSocket类可以接受并处理的消息事件
1.六种套接字相关的事件与通知消息

#define FD_READ 0x01
#define FD_WRITE 0x02
#define FD_OOB 0x04
#define FD_ACCEPT 0x08
#define FD_CONNECT 0x10
#define FD_CLOSE 0x20
.