⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d083.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
表3-5 CSyncSocket的可重载的消息响应函数
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃    函  数      ┃    说  明                                                      ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnAccept      ┃  通知监听的Socket,它可以通过调用Accept函数接受连接请求        ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnClose       ┃  通知Socket,与它相连接的Socket已经关闭                        ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnConnect     ┃  通知一个正在连接的Socket,连接尝试已经完成,或者成功或者失败  ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃OnOutOfBandData ┃  通知一个正在接收数据的Socket,有紧急数据到达                  ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnReceive     ┃  通知Socket有数据到达,可以调用Receive函数去接收数据           ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnSend        ┃  通知Socket可以调用Send发送数据                                ┃
┗━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
    数据成员为rn hSocket,表示是与CAsyncSocket对象关联的Socket句柄。
    2.CAsyncSocket编程模型
    CAsyncSocket只是在一个很低的层次上封装了Windows Socket API,它当初设计主要是
为很熟悉网络通信细节的程序员写网络回调函数带来方便,所以CAsyncSocket只提供了一
些基本的操作。
    调用CAsyncSocket类需要用到头文件<afxsock.h>。
    创建和使用CAsyncSocket的步骤如下。
    1)调用AfxSocketlnit()初始化WinSock.,
    if (AfxS ocketInit(NULL)-.FALSE)
    AfxMessageB oxC oMndowsSocket initial  failed!”);
2)构造一个CAsyncSocket对象并且用这个对象创造一个Socket句柄。例如:
CAsyncSocket socket;
socket.Create0;    ,/使用默认参数
或者,
    CAsyncSocket* pSocket= new CAsyncSocket;
    int nPort= 1227;
    pSocket-> Create( nPort,    SOCK_DGRAM);
    第一种构造方法在堆栈上创建一个CAsyncSocket对象,第二个构造方法在堆区创建
CAsyncSocket。第一种方法中Create调用使用默认参数,创造了一个流式的Socket;第二
种方法中Create调用具有指定端口和地址的数据文报套接字,创造了一个数据报的Socket。
(任一个Create版本都可以和任一种构造方法一起使用。)
    对于服务器端来说,必须在Create中指定一个端口;而对于客户端而言,不必去指定端
口,Winsock会自动选择一个端口。Bind0函数正是这样来做的,而在CasyncSocket肉部的
Create函数就是调用了Win32API的Bind()。
    3)如果Socket是客户端,那么直接调用CAsyncSocket::Connect函数与服务器相连。如
果Socket是服务器端,那么应该调用CAsyncSocket::Listen去监听,一旦有连接请求到来,
则调用CAsyncSocket::Accept去构造一个会话Socket。
    这里需要注意的是,与Win32API的Accept()函数不同,Accept()函数参数中需要引用一

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -