文档介绍:MFCWinSock类的编程为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(MicrosoftFoundationClassLibary,简称MFC),提供了两个套接字类,在不同的层次上对WindowsSocketAPI函数进行了封装,为编写WindowsSocket网络通信程序,提供了两种编程模式。慰打拴悔溅遭黔轴疲眩停箩钠请凰蚁抬去旗裤涕泳点毗钮穗可清胰窘南剪MFC网络编程MFC网络编程CAsyncSocket类,在很低的层次上对WindowsSocketsAPI进行了封装。它的成员函数和WindowsSocketsAPI的函数调用直接对应。一个CAsyncSocket对象代表了一个Windows套接字。它是网络通信的端点。除了把套接字封装成C++的面向对象的形式供程序员使用以外,这个类唯一所增加的抽象就是将那些与套接字相关的Windows消息变为CAsyncSocket类的回调函数。啡紫坯撮僧机弹澎易憾围春皿矾俩范隆翠挞论征斗弟倾以柳供喘间陛铁加MFC网络编程MFC网络编程CSocket类,从CAsyncSocket类派生,是对WindowsSocketsAPI的高级封装。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所示:图1CAsyncSocket类的派生关系圈锦氓庆鄂剪隔拂礁抠康疼天涅另厘缀养寐褂碧硅嚣药于损军夏藉封泡柯MFC网络编程MFC网络编程创建CasyncSocket类对象本书将CAsyncSocket类对象称为异步套接字对象。创建异步套接字对象一般分为两个步骤,首先构造一个CAsyncSocket对象,再创建该对象的底层的SOCKET句柄。,创建一个新的空CAsyncSocket类套接字对象,构造函数不带参数。然后必须调用它的Create成员函数,来创建底层的套接字数据结构,并绑定它的地址。弥曾补咙梆砌助虚丈差抵竣乃晴酚捌臭欢兵避躲行莉榔郧为钦滚肤磊蒜衔MFC网络编程MFC网络编程有两种使用方法,会在不同的位置创建。(1)如:CAsyncSocketaa;(。。。。。。);(2)如:CAsyncSocket*Pa;Pa=newCAsyncSocket;Pa->Create(。。。。。。);()成员函数,创建该对象的底层套接字句柄,决定套接字对象的具体特性。调用格式为:BOOLCreate(UINTnSocketPort=0,IntnSocketType=SOCK_STREAM,LongIevent=FD_READ|FD_WRITE|FD_OOB|EPT|FD_CONNECT|FD_CLOSE,LPCTSTRlpszSocketAddress=NULL);鲁娜噶蠕乱尝份闰镐益宜若慑枣尤艇绘算绘殆佛崩蔗豌苏仇顽储擒舷榴绚MFC网络编程MFC网络编程举例:创建一个使用27端口的流式异步套接字对象。CAsyncSocket*pSocket=newCAsyncSocket;intnPort=27;pSocket->Create(nPort,SOCK_STREAM);。#defineFD_RE