网站大量收购闲置独家精品文档,联系QQ:2885784924

[PPT模板]网络编程-winsock.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[PPT模板]网络编程-winsock

Winsock常用方法及编程步骤 基于UDP服务器/客户端通信流程 Winsock常用方法及编程步骤 客户端代码示例: 网络通信源代码 : UDP- UDP_Client 服务端代码示例: UDP- UDP_Server Winsock常用IO模型介绍 Windows sockets I/O 模型 1. Select 模型 2. WSAAsyncSelect 模型 3. WSAEventSelect 模型 4. 重叠I/O模型 5. 完成端口(IOCP)模型 Winsock常用IO模型介绍 Select 模型 使用该模型使得Windows sockets 应用程序可以在同一时间内管理和控制多个套接字。该模型的核心是Select函数。在使用该函数时,还需要用到FD_SET、FD_ZERO、FD_ISSET和FD_CLR四个宏。 利用Select函数,Windows sockets 应用程序可以判断套接字上是否存在数据,或者能否向该套接字写入数据。 Winsock常用IO模型介绍 2. WSAAsyncSelect 模型 WSAAsyncSelect模型是Windows sockets 的一个异步I/O模型。利用该模型应用程序可以在一个套接字上,接收以Windows 消息为基础的网络事件。 Windows sockets 应用程序在创建套接字后,调用WSAAsyncSelect函数注册感兴趣的网络事件。当该事件发生时,Windows 窗口收到消息,然后应用程序就可以对接收到的网络事件进行处理。 Winsock常用IO模型介绍 3. WSAEventSelect 模型 WSAEventSelect 模型是Windows sockets 提供的另外一个异步I/O模型。该模型允许在一个或多个套接字上接收以事件为基础的网络事件通知。 ?Windows sockets 应用程序在创建套接字后,调用WSAEventSelect函数,将一个事件对象与网络事件集合关联起来。当网络事件发生时,应用程序以事件的形式接收网络事件通知。 WSAEventSelect模型与WSAAsyncSelect模型很相似,主要的区别是:网络事件发生时系统通知应用程序的形式不同。 WSAAsyncSelect模型以消息的形式通知应用程序,而WSAEventSelect模型则以事件的形式通知。 WSAEventSelect模型的核心是WSAEventSelect()函数。应用WSAEventSelect模型开发Windows sockets 应用程序时,还需要用到WSACreateEvent()、WSAResetEvent()、WSACloseEvent()、 WSAWaitForMultipleEvents()、WSAEnumNetworkEvents()等函数。 Winsock常用IO模型介绍 4. 重叠I/O模型 重叠I/O模型是真正意义上的异步I/O模型。该模型以Win32重叠I/O机制为基础。 利用重叠I/O模型,应用程序能在一个重叠结构上一次投递一个或者多个I/O请求,当系统完成I/O操作之后通知应用程序。应用程序接收到通知后,对数据进行处理。 系统向应用程序发送通知的形式有两种:1. 事件通知 2. 完成例程。在发起Windows sockets 函数调用时,由应用程序设置接收I/O操作完成的通知形式。 什么是重叠IO? Winsock常用IO模型介绍 5. 完成端口模型 ?完成端口是Win32的一种核心对象。完成端口模型是一种真正意义上的异步模型,以Win32的重叠I/O机制为基础。 利用完成端口模型,套接字应用程序能够管理数百个甚至上千个套接字。应用程序创建一个Win32完成端口对象,通过指定一定数量的服务线程,为已经完成的重叠I/O操作提供服务。 完成端口的目标是实现高效的服务器程序,其方法为: ?1. 为完成端口指定并发线程的数量; ?2. 在初始化套接字时创建一定数量的服务线程,即所谓的线程池。当客户端请求到来时,这些线程立即为之服务。 什么是重叠IO 在windows中有一个api叫readfile ? ? ? ? bool ? ReadFile( ? ? ? ? handle ? hfile, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ? handle ? to ? file ? ? ? ? lpvoid ? lpbuffer, ? ? ? ? ? ? ? ? ? ? ? ? ? // ? data ? buffer ? ? ? ? dword ? nnumberofbytestoread, ? ? // ? number ? of ? byte

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档