📄 d103.bmp.txt
字号:
图3-19 向客户机发送数据
相应的,若将TCP/UDP调试助手设置为客户机,将聊天室的程序设置为服务器,也会
实现同样的功能,这里就不再重复了。
3.4 实例6:CSocket编程技术——基于CSocket的局域网聊天室程序
在3.3节我们提到Microsoft的基本类库(Microsoft Foundation Class,MFC)提供了两
种利用Windows Sockets进行网络通信的编程模式,这两种模式即为用CAsyncSocket类和派
生于CAsyncSocket的CSocket类来编程。
CSocket派生于CAsyncSocket,派生关系如图3-20所示。CSocket类的使用比
CAsyncSocket类更加容易,它继承了父类中一些常用易懂的Windows Sockets API函数,并
对CAsyncSocket中底层的较难控制的一些API函数或成员函数进行了处理,提供了对通过
CArchive对象使用套接字工作的更高级抽象。它通过MFC Archive对象进行信息的收发操
作,使得网络传输如同使用MFC的文档连载协议
(Serialization protocol),简捷易用。同时它支持模块化的
后合信息处理,解决了CAsyncSocket中较难克服的多线程
处理。更加重要的是,CSocket提供了对于同步操作CArchive
对象十分重要的阻塞功能,和CSocketFile以及CArchive类
混合使用,一起来负责数据的发送和接收,使收发数据的操
作变得简单明了。
3.4.1 CSocket类的组成与编程流程
图3-20 CSocket类派生关系图
1.CSocket类的组成
CSocket类是CAsyncSocket类的派生类,它对Winsock API进行进一步的封装。因此它
103
L/J
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -