重叠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操作完成之后,函数才返回。
发表评论
-
UNIX TCP/IP配置与检测
2012-01-20 10:31 866UNIX TCP/IP配置与检测 2010年12月14日 ... -
Web Application Stress Tool
2012-01-20 10:31 758Web Application Stress Tool 20 ... -
Jabberd2源代码分析:c2s与router SASL验证过程
2012-01-20 10:31 1459Jabberd2源代码分析:c2s与router SASL验证 ... -
VC中使用自定义消息在进程间通讯
2012-01-20 10:31 1125VC中使用自定义消息在进程间通讯 2011年06月14日 ... -
一个简单的NT驱动之驱动入口函数(DriverEntry)
2012-01-19 15:31 2210一个简单的NT驱动之驱动入口函数(DriverEntry) ... -
无法安装或运行此应用程序。该应用程序要求首先在“全局程序集缓存(GAC)”中安装程序集stdole版本7.0.3300.0
2012-01-19 15:31 2148无法安装或运行此应用程序。该应用程序要求首先在“全局程序集缓存 ... -
通用(任何android机型)Root教程(完整版!附砖机自救方法)转自安卓网
2012-01-19 15:31 2357通用(任何android机型)Root ... -
Android开发之--adb shell 命令大全
2012-01-19 15:31 675Android开发之--adb shell 命令大全 201 ... -
慢慢研究
2012-01-19 15:31 689慢慢研究 2011年12月24日 ... -
-微小说
2012-01-17 05:18 715-微小说 7 ... -
爱的人
2012-01-17 05:18 602爱的人 7小时前 感谢一路上有太多太多人的陪伴!又是一年 ... -
媳妇 你失眠 进来看看
2012-01-17 05:18 593媳妇 你失眠 进来看看 7小时前 不要问我为啥动这些 ... -
别忘记生命来时的样子…
2012-01-17 05:18 638别忘记生命来时的样子… 7小时前 每一个生命都像是被流放 ... -
106条心语语录――棠棠不落阁(写给青春一)
2012-01-17 05:18 700106条心语语录――棠棠 ... -
vs2005自带的水晶报表破解方法 (还没有试过)
2012-01-16 04:12 1289vs2005自带的水晶报表破解方法 (还没有试过) 2010 ... -
vs2005
2012-01-16 04:12 572vs2005 2010年06月06日 KYTYHTQKW ... -
vs2005 professional版注册码
2012-01-16 04:12 1277vs2005 professional版注册码 2009年1 ... -
ArcGIS Server 9.3 安装步骤及相关注意事项
2012-01-16 04:12 834ArcGIS Server 9.3 安装步骤及相关注意事项 ... -
ArcGIS Server 9.3 Net安装流程
2012-01-16 04:12 991ArcGIS Server 9.3 Net安装流程 2009 ...
相关推荐
主要使用控制台程序,大致讲叙了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封装,用异步重叠完成例程.主要是封装思想.具体沾包还要靠自己解决.