16.4.3 CSocket类
CSocket类派生于CAsyncSocket类,通过MFC的CArchive对象提供Sockets的存档功能,使用过程比CAsyncSocket模型要简单得多。CSocket类从CAsyncSocket类继承了很多封装了Windows Sockets API的成员函数。因此,使用CSocket类一般不需要深入了解Socket编程(www.cppentry.com)。更方便的是,CSocket提供了CArchive的同步操作,实现了Socket通信的文档序列化。可以使用MFC序列化协议发送数据和接收数据。网络传输层会将数据分割成大小合适的数据包,CSocket类可以处理包装和解包工作。在CAsyncSocket类的基础上,CSocket类提供了以下几个函数。
IsBlocking()函数:此函数可以确定当前是否在执行一个阻塞调用。
FromHandle()函数:返回一个指向CSocket对象的指针,其中存放了SOCKET句柄。使用此SOCKET句柄,可以使用WinSocket API执行其他套接字函数。
Attach()函数:可以将一个SOCKET句柄附加到CSocket对象上。
CancelBlockingCall()函数:可以取消当前的阻塞操作。