`
vie61vie
  • 浏览: 10351 次
社区版块
存档分类
最新评论

重叠IO 通信模型,函数记录。

 
阅读更多

重叠IO 通信模型,函数记录。
2010年12月07日
  af
  [in] 指明地址协议家族。一般都是使用IP协议。 一般的参数都是 AF_INET 
  type
  [in] 指明该通信是什么样的数据格式。TCP 还是UDP 等。 (SOCK_STREAM 参数指 数据流格式 TCP格式,
  SOCK_DGRAM 是UDP 数据包格式。)
  )  protocol
  [in] 
  使用的特定协议,如果调用者不愿指定协议则定为0。 一般指定为:IPPROTO_TCP 表示使用TCP协议。
  lpProtocolInfo
  [in] 指定下层服务的提供者。 
  g
  [in] 保留字。 
  dwFlags
  [in] 指定套接字的属性,如果使用重叠IO的话,必须指定WSA_FLAG_OVERLAPPED.
  int WSASend(
   SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent, DWORD dwFlags, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine );  s
  [in]欲发送消息的套接字 
  lpBuffers
  [in] 发送的缓冲区 
  dwBufferCount
  [in] 发送的缓冲区的大小 
  lpNumberOfBytesSent
  [out]返回发送成功的字节个数。 
  dwFlags
  [in]标志 
  lpOverlapped
  [in]与此IO操作关联的WSAOVERLAPPED结构。 
  lpCompletionRoutine
  [in] 指定一个完成例程。
  IO操作函数都接受一个WSAOVERLAPPED结构的参数,此IO函数会立即返回,它们依靠传递的WSAOVERLAPPED结构管理 IO的完成,IO完成之后,应用程序可以有两种方法可以接受到重叠IO完成的通知:
  1、在与WSAOVERLAPPED结构关联的事件对象上等待,IO完成之后,此事件对象受信,这个是最常用的方法。 2、使用lpCompletionRoutine 指向的完成例程。完成例程是一个自定义的函数,IO操作完成后,就去调用它。这种方法使用的很少,将lpCompletionRoutine 设置为NULL即可。
  typedef struct _WSAOVERLAPPED {
  DWORD Internal;
  DWORD InternalHigh;
  DWORD Offset;
  DWORD OffsetHigh;
  WSAEVENT hEvent; } WSAOVERLAPPED, 
  *LPWSAOVERLAPPED;前四个参数,由系统内部调用,使用时不用操作这四个参数。hEvent是一个事件对象的句柄,可以关联一个事件对象,当IO完成后,会通知该事件对象。BOOL WSAGetOverlappedResult( SOCKET
  ); 获取重叠操作的结果。 [out] 获取实际传输的字节数。
  [in] 标志是否等待还未完成的IO操作,如果是true的话,会等到IO操作完成之后,函数才返回。
分享到:
评论

相关推荐

    基于事件通知的重叠IO模型

    在压缩包中的"基于事件通知的重叠IO模型"文件可能包含了实现上述步骤的源代码,包括关键函数的定义和使用示例,以及相关的注释。通过阅读和分析这些代码,你可以更深入地了解如何在实际项目中应用这种高效的网络模型...

    采用事件通知形式的重叠I/O操作模型

    总之,重叠I/O操作模型结合事件通知是Windows平台上高效处理网络通信和I/O密集型任务的关键技术。在C++中,借助Visual Studio 2010,开发者可以方便地实现这一机制,提升应用程序的性能和响应性。

    基于重叠IO机制的网络通讯类CNet,附文件传输测试工程

    在Windows系统中,重叠IO是一种异步I/O模型,它允许数据的读写操作与其他系统调用同时进行,无需等待读写完成。这种机制显著提高了系统资源利用率和应用程序的响应速度,尤其是在处理大量并发连接时,其优势尤为明显...

    重叠IO编写的词典程序

    2. **读取词典数据**:使用CreateFile函数打开词典文件,并设置FILE_FLAG_OVERLAPPED标志以启用重叠IO。接着,使用ReadFile函数发起读取请求,同时提供一个包含OVERLAPPED结构的缓冲区,用于记录I/O操作的状态。 3....

    windows 命名管道_重叠IO

    使用`ReadFile`和`WriteFile`进行数据交换,这两个函数在I/O重叠模式下可以立即返回,无需等待实际的读写操作完成。 6. **重复步骤5**:服务器可以持续接收和处理新的客户端连接,直到不再需要服务。 在实现过程中...

    socket工程文件重叠IO事件通知版本

    本工程文件"socket工程文件重叠IO事件通知版本"聚焦于使用重叠I/O(Overlapped I/O)技术来提升socket通信的效率,实现多个客户端与服务器之间的高效数据传输。以下是关于这个主题的详细知识点: 1. **Socket基础**...

    windows TCP/IP 网络编程(五)5种windows网络模型(4) 重叠IO模型(a)事件通知 DEMO

    在本教程中,我们将深入探讨第五个也是最后一个主要的Windows网络模型——重叠I/O模型,特别是其事件通知机制。这个模型在高性能服务器编程中尤为重要,因为它能够实现非阻塞I/O操作,极大地提高了系统的并发处理...

    多线程,重叠IO,异步读写 命名通道服务器源码

    《多线程、重叠IO、异步读写与命名通道服务器源码解析》 本文将深入探讨一种基于Windows API的多线程命名管道服务器的实现,涉及的关键技术包括多线程、重叠I/O(Overlapped I/O)、异步读写以及命名管道。这些技术...

    WSAOverlapped_事件IO重叠基础_VS2010.rar

    在Windows系统中,WSAOverlapped结构体和WSAAsyncSelect或WSAEventSelect函数是实现重叠IO的关键。在这个项目中,我们看到有"WSAOverlapped.sln"解决方案文件,这通常包含了整个项目的源代码和配置信息。通过VS2010...

    教你玩转网络编程模型之重叠IO(OVERLAPPERDIO)篇配套代码

    本教程将深入讲解重叠IO的概念,并通过配套代码帮助你理解和实践。 **重叠I/O的基本概念** 重叠I/O是Windows API提供的一种非阻塞I/O模型,它允许数据传输和处理同时进行,从而提高了系统的吞吐量。在传统的同步I/...

    C++实现采用事件通知的socket重叠I/O模型代码

    总结来说,"C++实现采用事件通知的socket重叠I/O模型代码"是一个展示如何利用C++和Windows API在Windows平台上实现高效网络通信的实例。通过理解和应用这个模型,开发者能够构建能处理大量并发连接的高性能网络应用...

    幽默Socket+IO模型.doc幽默Socket+IO模型.doc

    - **Select模型**:利用`select`函数可以监控多个Socket的活动状态,当某个Socket准备就绪时,`select`函数会返回,然后程序可以处理这个Socket。这种方式允许单个线程同时管理多个连接,但在大量连接时效率较低。 ...

    串口通信编程的一个高级实例,采用了多线程,涉及到串口以及输入输出同步和IO重叠方面的知识,主要实现数据收发.rar

    6. **文件名称列表中的"SerialPort"**:这可能是项目中的源代码文件或类,可能包含了串口通信的核心实现,包括打开、关闭串口,设置串口参数,读写数据,以及处理线程同步和IO重叠的函数或方法。 理解以上知识点,...

    winsocket 5中IO模型-代码全攻略

    本文将详细探讨五种不同的I/O模型:选择模型(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)。我们将通过一个简单的回应反射式...

    WINSOCK IO模型.pdf

    ### WINSOCK IO模型概述 本文旨在深入探讨Windows环境下针对套接字的多种输入/输出(I/O)模型,包括但不限于`select(选择)`、`WSAAsyncSelect(异步选择)`、`WSAEventSelect(事件选择)`、`Overlapped I/O(重叠式I/O)`...

    5种winsock_IO模型

    ### 5种Winsock IO模型详解 #### 一、引言 在Windows平台上构建网络应用程序时,选择合适的I/O模型至关重要。Windows操作系统提供了多种I/O模型来满足不同场景下的需求,包括选择(Select)、异步选择...

    SOCKET IO 模型

    SOCKET IO模型是Windows系统中进行网络编程的重要接口,它提供了多种不同的I/O模型来处理套接字(socket)通信。以下将详细解释这些模型及其在Windows中的应用: 1. **WSAAsyncSelect模型**: WSAAsyncSelect模型...

    基于API函数的串口通信编程

    在Windows系统中,串口通信通常基于WOSA(Windows Open Services Architecture)模型,通过调用特定的API函数与底层驱动进行交互。其中,`CreateFile`函数用于打开串口,如`COM1`或`COM2`。例如,调用`CreateFile`...

    Socket IO模型之选择

    Windows 平台为开发人员提供了多种 Socket I/O 模型,包括选择(select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠 I/O(overlapped I/O)以及完成端口(completion port)等。这些模型各有特点,在...

Global site tag (gtag.js) - Google Analytics