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

📄 d104.bmp.txt

📁 Visual C++通信编程工程实例精解(附盘)
💻 TXT
字号:
的成员函数与CAsyncSocket相比要少得多,不难掌握。
    首先介绍CSocket类的一些基本知识,属性函数如表3-8所示。
表3-8 CSocket的属性函数
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃    属  性      ┃    说  明                                          ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    IsBlocking  ┃    判断进程中是否是阻塞调用                        ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    FromHandle  ┃    通过一个给定的Socket句柄返回一个CSocket对象指针 ┃
┣━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    Attach      ┃    关联一个Socket句柄到一个CSocket对象             ┃
┗━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━┛
操作函数如表3-9所示。
表3-9 CSocket的操作函数
┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃    函  数          ┃    说  明                      ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Accept          ┃    接收连接请求                ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃  AsyncSelect       ┃    为Socket请求接收异步消息    ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Bind            ┃    把本地地址关联到Socket上    ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Close           ┃    关闭当前Socket              ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Connect         ┃    与对方Socket进行连接        ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    IOCtl           ┃    控制Socket模式              ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Listen          ┃    监听连接请求                ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Receive         ┃    从Socket接收数据            ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    ReceiveFrom     ┃    接收一个数据并存储源地址    ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    Send            ┃    发送数据到连接的接口        ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    SendTo          ┃    发送数据到具体的目标地址    ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃    ShutDown        ┃    使Send和/或Receive调用无效 ┃
┣━━━━━━━━━━╋━━━━━━━━━━━━━━━━┫
┃CancelBlockingCall  ┃    取消正在进行的阻塞调用      ┃
┗━━━━━━━━━━┻━━━━━━━━━━━━━━━━┛
可重载的消息响应函数如表3-10所示。
表3-10 CSocket的可重载的消息响应函数
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃    消  息        ┃    说  阴                                                      ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnAccept        ┃  通知监听的Socket它可以通过调用Accept函数接收连接请求          ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnClose         ┃  通知Socket,与它相连接的Socket已经关闭                        ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnConnect       ┃  通知一个正在连接的Socket,连接尝试已经完成,或者成功或者失败  ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃OnOutOfBandData   ┃  通知一个正在接收数据的Socket,有紧急数据到达                  ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnReceive       ┃  通知Socket有数据到达,可以调用Receive函数去接收数据           ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃  OnSend          ┃  通知Socket可以调用Send发送数据                                ┃
┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃OnMessagePending  ┃  让系统等待阻塞调用完成之后发送一个消息                        ┃
┗━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
    请读者注意,CSocket的操作函数与可重载的消息响应函数相比,分别只多了一个
CanceIBlockingCall()函数和OnMessagePending0函数。
    2.CSocket编程流程
    下面介绍使用CSocket对象进行客户服务器之间通信的一般编程模型。与调用
  104

⌨️ 快捷键说明

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