- 浏览: 10492 次
最新评论
重叠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操作完成之后,函数才返回。
发表评论
-
Jabberd2源代码分析:c2s与router SASL验证过程
2012-01-20 09:19 690Jabberd2源代码分析:c2s与router SASL验证 ... -
VC中使用自定义消息在进程间通讯
2012-01-20 09:19 481VC中使用自定义消息在进程间通讯 2011年06月14日 ... -
apache2 安装与配置
2012-01-20 09:19 900apache2 安装与配置 2010年11月09日 v0 ... -
Heritrix源码分析(二) 配置文件order.xml介绍
2012-01-20 09:19 734Heritrix源码分析(二) 配 ... -
2011,感恩年
2012-01-19 14:20 4932011,感恩年 2012年01月14 ... -
快乐并成长着的2011年
2012-01-19 14:19 508快乐并成长着的2011年 2 ... -
写给河南新精疯狂英语班同学们的一封信
2012-01-19 14:19 608写给河南新精疯狂英语班同学们的一封信 2012年01月05日 ... -
2011年度优秀员工获奖感想
2012-01-19 14:19 5612011年度优秀员工获奖感 ... -
晒晒孩子们的作文(一)
2012-01-19 14:19 548晒晒孩子们的作文(一) ... -
和老外对训练理念的交流,中英文,翻译好了
2012-01-17 04:09 793和老外对训练理念的交流,中英文,翻译好了 2011年08月2 ... -
为单位的
2012-01-17 04:09 302为单位的 2011年08月23日 这人写了一篇文章,已经 ... -
口袋英语5
2012-01-17 04:09 656口袋英语5 2011年06月26 ... -
jhhg
2012-01-16 02:57 635jhhg 2009年07月06日 > 24) &a ... -
最新qq空间软件,软件下载-----わ 。
2012-01-16 02:57 567最新qq空间软件,软件下载-----わ 。 2009年08月 ... -
FLEX
2012-01-16 02:57 467FLEX 2009年12月04日 ... -
QQ 空间软件制作大全
2012-01-16 02:57 358QQ 空间软件制作大全 2010年05月31日 ★★★★ ... -
as学习经验之谈
2012-01-16 02:57 423as学习经验之谈 2009年11 ...
相关推荐
在压缩包中的"基于事件通知的重叠IO模型"文件可能包含了实现上述步骤的源代码,包括关键函数的定义和使用示例,以及相关的注释。通过阅读和分析这些代码,你可以更深入地了解如何在实际项目中应用这种高效的网络模型...
总之,重叠I/O操作模型结合事件通知是Windows平台上高效处理网络通信和I/O密集型任务的关键技术。在C++中,借助Visual Studio 2010,开发者可以方便地实现这一机制,提升应用程序的性能和响应性。
在Windows系统中,重叠IO是一种异步I/O模型,它允许数据的读写操作与其他系统调用同时进行,无需等待读写完成。这种机制显著提高了系统资源利用率和应用程序的响应速度,尤其是在处理大量并发连接时,其优势尤为明显...
2. **读取词典数据**:使用CreateFile函数打开词典文件,并设置FILE_FLAG_OVERLAPPED标志以启用重叠IO。接着,使用ReadFile函数发起读取请求,同时提供一个包含OVERLAPPED结构的缓冲区,用于记录I/O操作的状态。 3....
使用`ReadFile`和`WriteFile`进行数据交换,这两个函数在I/O重叠模式下可以立即返回,无需等待实际的读写操作完成。 6. **重复步骤5**:服务器可以持续接收和处理新的客户端连接,直到不再需要服务。 在实现过程中...
本工程文件"socket工程文件重叠IO事件通知版本"聚焦于使用重叠I/O(Overlapped I/O)技术来提升socket通信的效率,实现多个客户端与服务器之间的高效数据传输。以下是关于这个主题的详细知识点: 1. **Socket基础**...
在本教程中,我们将深入探讨第五个也是最后一个主要的Windows网络模型——重叠I/O模型,特别是其事件通知机制。这个模型在高性能服务器编程中尤为重要,因为它能够实现非阻塞I/O操作,极大地提高了系统的并发处理...
《多线程、重叠IO、异步读写与命名通道服务器源码解析》 本文将深入探讨一种基于Windows API的多线程命名管道服务器的实现,涉及的关键技术包括多线程、重叠I/O(Overlapped I/O)、异步读写以及命名管道。这些技术...
在Windows系统中,WSAOverlapped结构体和WSAAsyncSelect或WSAEventSelect函数是实现重叠IO的关键。在这个项目中,我们看到有"WSAOverlapped.sln"解决方案文件,这通常包含了整个项目的源代码和配置信息。通过VS2010...
本教程将深入讲解重叠IO的概念,并通过配套代码帮助你理解和实践。 **重叠I/O的基本概念** 重叠I/O是Windows API提供的一种非阻塞I/O模型,它允许数据传输和处理同时进行,从而提高了系统的吞吐量。在传统的同步I/...
总结来说,"C++实现采用事件通知的socket重叠I/O模型代码"是一个展示如何利用C++和Windows API在Windows平台上实现高效网络通信的实例。通过理解和应用这个模型,开发者能够构建能处理大量并发连接的高性能网络应用...
- **Select模型**:利用`select`函数可以监控多个Socket的活动状态,当某个Socket准备就绪时,`select`函数会返回,然后程序可以处理这个Socket。这种方式允许单个线程同时管理多个连接,但在大量连接时效率较低。 ...
6. **文件名称列表中的"SerialPort"**:这可能是项目中的源代码文件或类,可能包含了串口通信的核心实现,包括打开、关闭串口,设置串口参数,读写数据,以及处理线程同步和IO重叠的函数或方法。 理解以上知识点,...
本文将详细探讨五种不同的I/O模型:选择模型(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)。我们将通过一个简单的回应反射式...
### WINSOCK IO模型概述 本文旨在深入探讨Windows环境下针对套接字的多种输入/输出(I/O)模型,包括但不限于`select(选择)`、`WSAAsyncSelect(异步选择)`、`WSAEventSelect(事件选择)`、`Overlapped I/O(重叠式I/O)`...
### 5种Winsock IO模型详解 #### 一、引言 在Windows平台上构建网络应用程序时,选择合适的I/O模型至关重要。Windows操作系统提供了多种I/O模型来满足不同场景下的需求,包括选择(Select)、异步选择...
SOCKET IO模型是Windows系统中进行网络编程的重要接口,它提供了多种不同的I/O模型来处理套接字(socket)通信。以下将详细解释这些模型及其在Windows中的应用: 1. **WSAAsyncSelect模型**: WSAAsyncSelect模型...
在Windows系统中,串口通信通常基于WOSA(Windows Open Services Architecture)模型,通过调用特定的API函数与底层驱动进行交互。其中,`CreateFile`函数用于打开串口,如`COM1`或`COM2`。例如,调用`CreateFile`...
Windows 平台为开发人员提供了多种 Socket I/O 模型,包括选择(select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠 I/O(overlapped I/O)以及完成端口(completion port)等。这些模型各有特点,在...