- 浏览: 10104 次
最新评论
重叠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 668Jabberd2源代码分析:c2s与router SASL验证 ... -
VC中使用自定义消息在进程间通讯
2012-01-20 09:19 455VC中使用自定义消息在进程间通讯 2011年06月14日 ... -
apache2 安装与配置
2012-01-20 09:19 818apache2 安装与配置 2010年11月09日 v0 ... -
Heritrix源码分析(二) 配置文件order.xml介绍
2012-01-20 09:19 717Heritrix源码分析(二) 配 ... -
2011,感恩年
2012-01-19 14:20 4802011,感恩年 2012年01月14 ... -
快乐并成长着的2011年
2012-01-19 14:19 488快乐并成长着的2011年 2 ... -
写给河南新精疯狂英语班同学们的一封信
2012-01-19 14:19 592写给河南新精疯狂英语班同学们的一封信 2012年01月05日 ... -
2011年度优秀员工获奖感想
2012-01-19 14:19 5442011年度优秀员工获奖感 ... -
晒晒孩子们的作文(一)
2012-01-19 14:19 532晒晒孩子们的作文(一) ... -
和老外对训练理念的交流,中英文,翻译好了
2012-01-17 04:09 768和老外对训练理念的交流,中英文,翻译好了 2011年08月2 ... -
为单位的
2012-01-17 04:09 290为单位的 2011年08月23日 这人写了一篇文章,已经 ... -
口袋英语5
2012-01-17 04:09 634口袋英语5 2011年06月26 ... -
jhhg
2012-01-16 02:57 614jhhg 2009年07月06日 > 24) &a ... -
最新qq空间软件,软件下载-----わ 。
2012-01-16 02:57 551最新qq空间软件,软件下载-----わ 。 2009年08月 ... -
FLEX
2012-01-16 02:57 457FLEX 2009年12月04日 ... -
QQ 空间软件制作大全
2012-01-16 02:57 333QQ 空间软件制作大全 2010年05月31日 ★★★★ ... -
as学习经验之谈
2012-01-16 02:57 411as学习经验之谈 2009年11 ...
相关推荐
主要使用控制台程序,大致讲叙了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封装,用异步重叠完成例程.主要是封装思想.具体沾包还要靠自己解决.