- 浏览: 16545 次
最新评论
重叠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操作完成之后,函数才返回。
发表评论
-
VC中使用自定义消息在进程间通讯
2012-01-20 00:50 1428VC中使用自定义消息在进程间通讯 2011年06月14日 ... -
apache2 安装与配置
2012-01-20 00:50 1066apache2 安装与配置 2010年11月09日 v0 ... -
Heritrix源码分析(二) 配置文件order.xml介绍
2012-01-20 00:50 638Heritrix源码分析(二) 配 ... -
应用mina的例子做了一些修改,但有关于连接数的问题
2012-01-20 00:50 1163应用mina的例子做了一些修改,但有关于连接数的问题 201 ... -
Windows系统的Regsvr32
2012-01-17 01:08 806Windows系统的Regsvr32 2011 ... -
i9000
2012-01-17 01:08 906i9000 2011年03月26日 *#0*#工程测试, ... -
as3面试题
2012-01-17 01:08 647as3面试题 2011年09月13日 ... -
regsvr32用法集合
2012-01-17 01:08 1000regsvr32用法集合 2011年12月02日 R&a ... -
pcb layout 4
2012-01-15 19:49 747pcb layout 4 2011年12月30日 1.一 ... -
写给Linux内核新手-关于Linux内核学习的误区(转自ChinaUnix.net)
2012-01-15 19:49 994写给Linux内核新手-关于L ... -
C# asp.net获取外网IP
2012-01-15 19:49 1391C# asp.net获取外网IP 2011 ... -
发烧高端版v2.0版本
2012-01-15 19:49 764发烧高端版v2.0版本 4小时前 CPU AMD FX- ... -
compass搜索
2012-01-11 12:02 671compass搜索 2011年07月01日 compas ... -
apache mina error dead lock: iofuture.await()-yidianfengfan-iteye技术网站
2012-01-11 12:02 1120apache mina error dead lock: io ... -
sqlcmd错误的解决方法-bluedusk-iteye技术网站
2012-01-11 12:02 998sqlcmd错误的解决方法-bluedusk-iteye技术网 ... -
web framework
2012-01-11 12:02 593web framework 2011年07月01日 w ... -
GAE with spring实践经验
2012-01-11 12:02 704GAE with spring实践经验 2011年07月01 ...
相关推荐
主要使用控制台程序,大致讲叙了IO模型的相关步骤以及实现C/S模型,适合初学者查看
VC网络编程模型示例之 - 重叠IO模型 配套讲解请参考我的blog http://blog.csdn.net/PiggyXP
SOCKET模型之重叠IO篇
重叠iO和完成端口模型
采用C++原因编写,基于VS2010开发,代码中有相关注释
初步封装的基于完成例程的重叠IO模型,附有注释,希望对学习网络模型的同学有所帮助,共同进步
异步操作包括接收数据,发送数据,连接服务器 为避免同步socket, 简化操作, 因此采用双向连接,即读数据一个连接, 写数据一个连接 1. 接收数据: 异步模式, 当有数据过来时会自动接收 2. 发送数据: 异步模式, 如果...
自己写的重叠IO模型服务端程序,给入门者一个简单的参考案例,VS2008项目,亲测可以多客户端
重叠IO模型之OverLapped完成例程模型WSACompletionRoutineServer VS2010 基础入门 客户端与服务器端 客户端向服务器端发送数据 可接收多个客户端 #include #include #pragma comment (lib, "ws2_32.lib") #...
本代码采用C++实现,在VS2015下开发,可以直接运行,代码中有相关的注释,如发现有问题,请不吝指教,谢谢!
windows网络socket模型 异步通信模型 select模型 异步选择 异步事件 重叠IO 完成端口 详细介绍了区别 用法与实例
CNet类是基于重叠IO,用winsock2扩展socket API实现的,该类可被用于扩展继承,具有较强的灵活性,当IO操作完成后,会得到通知,以虚函数方式回调处理。该类既可作服务器又可作客户端
为了解决这个问题,windows引进了重 叠io的概念,同样是上面的readfile和writefile,如果在createfile的时候设置了file_flag_overlapped 那么在调用readfile和writefile的时候就可以给他们最后一个参数传递一个...
socket通信的客户端和服务器端的可执行程序,基于重叠IO事件通知技术,实现了多个客户端向服务器端持续发送数据
windows TCP/IP 网络编程(五)5种windows网络模型(4) 重叠IO模型(a)事件通知 DEMO
压缩包中含服务器端和客户端代码,服务器端是基于winsock overlapped IO模型的事件通知构建的,暂时用了一个线程,可以同时响应64个IO操作,当然可以通过增加线程数量达到响应IO操作以及客户端数量增加的目的,内含...
使用重叠IO编写的 词典程序 使用重叠IO编写的 词典程序 使用重叠IO编写的 词典程序
socket通信的客户端和服务器端的工程文件,基于重叠IO事件通知技术,实现了多个客户端向服务器端持续发送数据
windows TCP/IP 网络编程(六)5种windows网络模型(4) 重叠IO模型(b)完成例程 DEMO
c++重叠io封装,用异步重叠完成例程.主要是封装思想.具体沾包还要靠自己解决.