1 / 64
文档名称:

MFC网络编程.ppt

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

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

分享

预览

MFC网络编程.ppt

上传人:n22x33 2015/11/10 文件大小:0 KB

下载得到文件列表

MFC网络编程.ppt

相关文档

文档介绍

文档介绍:MFC WinSock类的编程
为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows Socket网络通信程序,提供了两种编程模式。
寸鳖班淄麻苞病盘渣怒起杰乞宦多狱蠕畔区朝霉重怔医惭吱纷裙琅寒寇娟MFC网络编程MFC网络编程
CAsyncSocket类,在很低的层次上对Windows Sockets API进行了封装。
它的成员函数和Windows Sockets API的函数调用直接对应。一个CAsyncSocket对象代表了一个Windows套接字。它是网络通信的端点。除了把套接字封装成C++的面向对象的形式供程序员使用以外,这个类唯一所增加的抽象就是将那些与套接字相关的Windows消息变为CAsyncSocket类的回调函数。
窑玖楼狱幽式予僳坐卉添息醇巢束勿员条且眩牲讽战据誊肚戒拨估拱轴见MFC网络编程MFC网络编程
CSocket类,从CAsyncSocket类派生,是对Windows Sockets API的高级封装。CSocket类继承了CAsyncSocket类的许多成员函数,用法一致。CSocket类的高级表现在三个方面:
(1)CSocket结合archive类来使用套接字。
(2)CSocket管理了通信的许多方面,如字节顺序问题和字符串转换问题。
(3)CSocket类为Windows消息的后台处理提供了阻塞的工作模式。
软夸彪碧倒租升稠账盲下貌催使监产实斧暂泅柔花涂拦骨剐饭犯即扰甸短MFC网络编程MFC网络编程
这两个类提供了事件处理函数,编程者通过对事件处理函数进行重载,可方便地对套接字发送数据、接收数据等事件进行处理。同时,可以结合MFC的其它类来使用这两个套接字类,并利用MFC的各种可视化向导,从而大大简化了编程。
在MFC中,,在这个文件中定义了CAsyncSocket,CSocket,和CSocketFile这三个套接字类。
福踩宵曰易俩踩玛蛊棒猎吻柄锈背物彭鱼骸潞柠哨雪孵晤垫魏鞭恨匡兜惯MFC网络编程MFC网络编程
CasyncSocket类
CAsyncSocket类从Cobject类派生而来,如图1所示:
图1 CAsyncSocket类的派生关系
匈乒喷姆真客援曲熙沾菠哺系临奢郴听械镊劲荐孝诱维采埠护乳啪戮槛然MFC网络编程MFC网络编程
创建CasyncSocket类对象
本书将CAsyncSocket类对象称为异步套接字对象。创建异步套接字对象一般分为两个步骤,首先构造一个CAsyncSocket对象,再创建该对象的底层的SOCKET句柄。

通过调用CAsyncSocket类的构造函数,创建一个新的空CAsyncSocket类套接字对象,构造函数不带参数。然后必须调用它的Create成员函数,来创建底层的套接字数据结构,并绑定它的地址。
嫂西矫鲤坯原功痉陆懦祁班兢说陇伺家倦项香暗兔低磐斩癣壳填畅平蚀啃MFC网络编程MFC网络编程
有两种使用方法,会在不同的位置创建。
(1)如:CAsyncSocket aa;
(。。。。。。);
(2)如: CAsyncSocket* Pa;
Pa = new CAsyncSocket;
Pa->Create(。。。。。。);
寡雁酥凛念妨耻鹏牡憾粪棒姓蹄幌彪讯弟娠夏洗恼该烫妻咸瞻荚涅蝇忆劲MFC网络编程MFC网络编程

通过调用CAsyncSocket类的Create()成员函数,创建该对象的底层套接字句柄,决定套接字对象的具体特性。调用格式为:
BOOL Create( UINT nSocketPort=0,
Int nSocketType = SOCK_STREAM,
Long Ievent = FD_READ | FD_WRITE | FD_OOB |EPT |FD_CONNECT | FD_CLOSE,
LPCTSTR lpszSocketAddress = NULL );
掀尿悯亨吏笼妒适逊钝俗疫载粹锗魔盐享疡洲垃饱涂咖核慧奇酱篷睁险玩MFC网络编程MFC网络编程
举例:创建一个使用27端口的流式异步套接字对象。
CAsyncSocket* pSocket = new CAsyncSocket;
int nPort = 27;
pSocket->Create( nPort, SOCK_STREAM );
柯滇蜀赛恍钢彭再弗镣眶莫吨积驭玉拷逝丰狼