- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP—协议分析与应用编程 第八章 MFC套接字编程 主要内容 CAsyncSocket类 使用CAsyncSocket类编程 CSocket类 使用CSocket进行网络编程 学习目标 掌握CasyncSocket类和CSocket类的使用方法。 熟悉基于CAsyncSocket类的网络应用程序设计方法。 熟悉基于CSocket类的网络应用程序设计方法。 CAsyncSocket类 在进行网络通信时,一个套接字可以处于“阻塞模式”或“非阻塞模式”。 当一个套接字处于“阻塞模式”(即同步操作模式)时,它的阻塞函数(主要包括函数accept、connect、send、recv)直到操作完成才会返回控制权。 如果一个套接字处于“非阻塞模式”(即异步操作模式),则阻塞函数被调用后会立即返回,不需要等待所需事件的发生。 CAsyncSocket类 CAsyncSock类是一个异步套接字类,该类封装了一些基本的WinSock API函数,提供了与较底层的Windows套接字的对话接口,一般适用于有一定基础的网络编程人员使用,可以方便地进行底层的网络事件通知以及信息回叫控制等操作。其对象既可以工作在“阻塞模式”也可以工作在“非阻塞模式”。 CAsyncSocket类 CAsyncSocket类定义了一组非常有用的成员函数,这些函数的功能和格式与WinSock API函数类似。 Create函数 格式: BOOL Create ( UINT nSocketPort = 0, //套接字端口号 int nSocketType = SOCK_STREAM, //套接字类型 long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, //事件屏蔽位 LPCTSTR lpszSocketAddress = NULL //套接字地址,IP地址或主机名 ); CAsyncSocket类 CAsyncSocket类的成员函数 AsyncSelect函数 格式: BOOL AsyncSelect ( long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE //事件屏蔽位 ); CAsyncSocket类 CAsyncSocket类的成员函数 Bind函数 格式: BOOL Bind ( UINT nSocketPort, //套接字端口号 LPCTSTR lpszSocketAddress = NULL //套接字地址,IP地址或主机名 ); 或者 BOOL Bind ( const SOCKADDR* lpSockAddr, //套接字结构地址 int nSockAddrLen //套接字结构地址长度 ); CAsyncSocket类 CAsyncSocket类的成员函数 Listen函数 格式: BOOL Listen ( int nConnectionBacklog = 5 //等待连接的最大队列长度 ); CAsyncSocket类 CAsyncSocket类的成员函数 Connect函数 格式: BOOL Connect ( LPCTSTR lpszHostAddress, //地址串型的地址参数,可以是IP地址或主机名 UINT nHostPort //端口号 ); 或者 BOOL Connect ( const SOCKADDR* lpSockAddr, // SOCKADDR类型的地址参数 int nSockAddrLen //地址参数长度 ); CAsyncSocket类 CAsyncSocket类的成员函数 Accept函数 格式: virtual BOOL Accept ( CAsyncSocket rConnectedSocket, //侦听套接字对象 SOCKADDR* lpSockAddr = NULL, //用于保存被连接的远程套接字地址 int* lpSockAddrLen = NULL //用于存储被连接的远程套接字地址长度 ); CAsyncSocket类 CAsyncSocket类的成员函数 Receive函数 格式: virtual int Receive ( void* lpBuf, //用于存放接收的数据,称为接收缓冲区 int nBufLen, //成功接收数据的长度 int nFlags = 0 //指明数据接收方式 ); C
文档评论(0)