网络编程第五章作业.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程第五章作业

网络编程作业 1、MFC提供的两个套接字类是什么? 答:CAsyncSocket类和CSocket类。 2、为什么说CAsyncSocket类是在很低的层次上对Windows Sockets API进行了封装? 答:它的成员函数和Windows Sockets API的函数调用直接对应。一个CAsyncSocket对象代表了一个Windows套接字,它是网络通信的端点,除了把套接字封装成C++的面向对象的形式供程序员使用以外,这个类唯一所增加的抽象就是将那些与套接字相关的Windows消息变为CAsyncSocket类的回调函数。 3、为什么说Csocket类是对Windows Sockets API的高级封装? 答:CSocket类继承了CAsyncSocket类的许多成员函数,封装了windows套接字的应用程序编程接口,用法一致。CSocket类的高级表现在以下三个方面: 1 CSocket结合archive类来使用套接字。 2 CSocket管理了通信的许多方面,如字节顺序问题和字符串转换问题。 3 CSocket类为Windows消息的后台处理提供了阻塞的工作模式。 4、使用CAsyncSocket类的一般步骤是什么? 答: 序号 服务器(Server) 客户机(Client) 1 //构建一个套接字 CAsyncSocket sockSrvr; //构建一个套接字 CAsyncSocket sockClient; 2 //创建SOCKET句柄,绑定到指定的端口 sockSrvr.Create nPort ; //创建SOCKET句柄,使用默认参数 sockClient.Create ; 3 //启动监听,时刻准备接受连接请求 sockSrvr.Listen ; 4 //请求连接到服务器 sockClient.Connect strAddr,nport ; 5 //构造一个新的空的套接字 CasyncSocket sockRecv; //接收连接 sockSrvr.Accept sockRecv ; 6 //接收数据 sockSrvr.Receive pBuf,nLen ; //发送数据 sockClient.Send pBuf,nLen ; 7 //发送数据 sockSrvr.Send pBuf,nLen ; //接收数据 sockClient.Receive pBuf,nLen ; 8 //关闭套接字对象 sockSrvr.Close ; //关闭套接字对象 sockClient.Close ; 5、CAsyncSocket类可以接受并处理哪些消息事件?当这些网络事件发生时,MFC框架作何处理? 答:MFC套接字对象可以接受并处理的六种网络事件: (1)FD_READ事件通知:通知有数据可读。 (2)FD_WRITE事件通知:通知可以写数据。 (3)FD_ACCEPT事件通知:通知监听套接字有连接请求可以接受。 (4)FD_CONNECT事件通知:通知请求连接的套接字,连接的要求已被处理。 (5)FD_CLOSE事件通知:通知套接字已关闭。 (6)FD_OOB事件通知:通知将有带外数据到达 当上述网络事件发生时,按照Windows的消息驱动机制,MFC框架应当把消息发送给相应的套接字对象,并调用作为该对象成员函数的事件处理函数。事件与处理函数是一一映射的。在afxSock.h文件中的CAsyncSocket类的声明中,定义了与这六个网络事件对应的事件处理函数。 virtual void OnReceive int nErrorCode ; 对应FD_READ事件 virtual void OnSend int nErrorCode ; 对应FD_WRITE事件 virtual void OnAccept int nErrorCode ; 对应FD_ACCEPT事件 virtual void OnConnect int nErrorCode ; 对应FD_CONNECT事件 virtual void OnClose int nErrorCode ; 对应FD_CLOSE事件virtual void OnOutOfBandData int nErrorCode ;对应FD_OOB事件 6、CSocket类如何通过Carchive对象来进行数据传输? 答:使用CArchive对象和套接字一起进行数据传输工作,必须使用流式套接字。具体做法如下: 1 创建CSocket类对象 2 创建一个基于CSocketFile类的文件对象,并把他的指针传给上面所创建的CSocket类对象 3 分别创建用于输入和输出的CArchive对象,并将它们与这个CS

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档