第7节  相关类库介绍

更新于 2026年10月10日 版权声明
第7节 相关类库介绍

1)CAsyncSocket类,如图15-30所示。CAsyncSocket类的常用成员见表15-7。

CAsyncSocket类封装了Windows套接字API,提供了面向对象的网络通信功能。

图示

图15-30 CAsyncSocket类

①TCP服务器端通信流程。

a)调用CAsyncSocket::Create函数,创建套接字并绑定端口。

b)调用CAsyncSocket::Listen函数,开始侦听,等待客户端连接。

c)调用CAsyncSocket::Accept函数,接收客户端连接并获取用于数据收发的套接字。

d)调用CAsyncSocket::Send/Receive函数,发送数据到客户端或接收客户端数据。

e)调用CAsyncSocket::Close函数,关闭数据收发套接字和侦听套接字。

②TCP客户端通信流程。

a)调用CAsyncSocket::Create函数,创建套接字并绑定端口(客户端一般使用随机端口)。

b)调用CAsyncSocket::Connect函数,使用套接字与服务器端连接。

c)调用CAsyncSocket::Send/Receive函数,发送数据到服务器端或接收服务器端数据。(https://www.daowen.com)

d)调用CAsyncSocket::Close函数,关闭套接字并断开与服务器的连接。

③UDP通信流程。

a)调用CAsyncSocket::Create函数,创建套接字并绑定端口(指定SOCK_DGRAM类型)。

b)调用CAsyncSocket::SendTo/ReceiveFrom函数,发送数据到其他计算机或接收其他计算机发来的数据。

c)调用CAsyncSocket::Close函数,关闭套接字。

表15-7 CAsyncSocket类常用成员

图示

2)CSocket类,如图15-31所示。CSocket类的常用成员见表15-8。

图示

图15-31 CSocket类

CSocket类是从CAsyncSocket类派生而来的,它继承了基类中的Receive、Send、ReceiveFrom、SendTo和Accept等所有操作函数。CSocket对象在执行Receive、ReceiveFrom和Accept函数时是阻塞的,而CAsyncSocket对象在执行以上函数时是非阻塞的,会返回WSAEWOULDBLOCK错误。当以上函数正在以阻塞模式执行时,如果调用CancelBlockingCall函数,则该函数调用将因为WSAEINTR错误而终止。

表15-8 CSocket类的常用成员

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)