网络编程知识资料.pptVIP

  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文档。上传文档
查看更多
当某个网络事件发生时,MFC框架会自动调用套接字对象的对应的事件处理函数。这就相当给了套接字对象一个通知,告诉它某个重要的事件已经发生。所以也称之为套接字类的通知函数或回调函数。 客户端套接字对象请求连接到服务器端 在服务器端套接字对象已经进入监听状态之后,客户应用程序可以调用Connect()成员函数,向服务器发出一个连接请求, 格式: BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort ); 如果调用成功或者发生了WSAEWOULDBLOCK错误,当调用结束返回时,都会发生FD_CONNECT事件,MFC框架会自动调用客户端套接字的OnConnect()事件处理函数,并将错误代码作为参数传送给它。它的原型调用格式如下, virtual void OnConnect( int nErrorCode ); 服务器接受客户机的连接请求 在服务器端,使用套接字对象,一般按照以下步骤来接收客户端套接字对象的连接请求。 (1)服务器应用程序必须首先创建一个套接字对象,并调用它的Create成员函数创建底层套接字句柄。这个套接字对象专门用来监听来自客户机的连接请求,所以称它为监听套接字对象。 (2)调用监听套接字对象的Listen成员函数,使监听套接字对象开始监听来自客户端的连接请求。此函数的调用格式是: BOOL Listen( int nConnectionBacklog = 5); ?当Listen函数确认并接纳了一个来自客户端的连接请求后,会触发FD_ACCEPT事件,监听套接字会收到通知,表示监听套接子已经接纳了一个客户的连接请求,MFC框架会自动调用监听套接字的OnAccept事件处理函数,它的原型调用格式如下, virtual void OnAccept( int nErrorCode ); 一般应重载此函数,在其中调用监听套接字对象的Accept函数,来接收客户端的连接请求。 (3)创建一个新的空的套接字对象,不需要使用它的Create函数来创建底层套接字句柄。这个套接字专门用来与客户端连接,并进行数据的传输。一般称它为连接套接字,并作为参数传递给下一步的Accept成员函数。 ?(4)调用监听套接字对象的Accept成员函数,调用格式为: virtual BOOL Accept( CAsyncSocket rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL ); 发送与接收数据 当服务器和客户机建立了连接以后,就可以在服务器端的连接套接字对象和客户端的套接字对象之间传输数据了。Send成员函数向套接字发送数据,使用Receive成员函数从套接字接收数据。 1.用Send成员函数发送数据 格式:virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0); ? 对于套接字对象,当它的发送缓冲区腾空时,会激发FD_WRITE事件,套接字会得到通知,MFC框架会自动调用这个套接字对象的OnSend事件处理函数。一般编程者会重载这个函数,在其中调用Send成员函数来发送数据。 2.用Receive成员函数接收数据 格式: Virtual int Receive( Void* lpBuf, Int nBufLen, Int nFlags = 0); 对于一个套接字对象,当有数据到达它的接收队列时,会激发FD_READ事件,套接字会得到已经有数据到达的通知,MFC框架会自动调用这个套接字对象的OnReceive事件处理函数。重载这个函数,在其中调用Receive成员函数来接收数据。在应用程序将数据取走之前,套接字接收的数据将一直保留在套接字的缓冲区中。 MFC的CSocket类 网络通信介绍 常州大学数理学院 2014.6 Windows套接字 什么是套接字 套接字是一种网络编程接口 英文:socket 字面意思:插座、插口 可以形象地将套接字理解为应用程序与网络协议之间的插口,也就是编程接口 Windows套接字 套接字是网络通信的端点 在网络中,主机H1上的一个套接字端点(endpoint)可以和主机H2上的另一个套接字端点进行通信 IP地址和端口号可以唯一确定一个套接字 Windows套接字 Windows套接字 Microsoft将Unix套接字中的大部分函数移植到Windows操作系统,形成了Windows套接字 Windows套接字针对Windows操作系统的消息驱动机制,对原有

文档评论(0)

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

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

1亿VIP精品文档

相关文档