社区
网络编程
帖子详情
WSAAsyncSelect 模型write事件的问题?
wileyking
2011-04-14 11:07:31
Recv事件很好理解, 当缓冲区有数据可读时, 会产生这个事件, 我们直接调用recv函数即可。
可是write事件呢,我知道当send 时缓冲区满会会产生write事件,我们可以再次调用send 发送。是这样的吧?
我们一般是先主动调send函数发送数据,此时会产生wirte事件吗?如果产生这个write事件有什么用呢?数据已经发送出去了。
谁能详细的解答一下啊 ??
...全文
86
7
打赏
收藏
WSAAsyncSelect 模型write事件的问题?
Recv事件很好理解, 当缓冲区有数据可读时, 会产生这个事件, 我们直接调用recv函数即可。 可是write事件呢,我知道当send 时缓冲区满会会产生write事件,我们可以再次调用send 发送。是这样的吧? 我们一般是先主动调send函数发送数据,此时会产生wirte事件吗?如果产生这个write事件有什么用呢?数据已经发送出去了。 谁能详细的解答一下啊 ??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lijianli9
2011-04-14
打赏
举报
回复
2楼回答的很完美。
Eleven
2011-04-14
打赏
举报
回复
对FD_WRITE 事件通知进行处理。只有在三种条件下,才会发出FD_WRITE通知:
1. 使用connect或WSAConnect,一个套接字首次建立了连接。
2. 使用accept或WSAAccept,套接字被接受以后。
3. 若send、WSASend、sendto或WSASendTo操作失败,返回了WSAEWOULDBLOCK错误,而且缓冲区的空间变得可用。
因此,作为一个应用程序,自收到首条FD_WRITE消息开始,便应认为自己必然能在一个
套接字上发出数据,直至一个send、WSASend、sendto或WSASendTo返回套接字错误WSAEWOULDBLOCK。经过了这样的失败以后,要再用另一条FD_WRITE通知应用程序再次发送数据。
smwhotjay
2011-04-14
打赏
举报
回复
write一般不用关心. 只要连上了,尽管发送好了. 不会出什么问题.
send完查看return 值就知道是否成功了
smwhotjay
2011-04-14
打赏
举报
回复
额,我遇到过一个鸟,他把socket比喻成pipe...
大海啊全是水
2011-04-14
打赏
举报
回复
write事件 会在两种情况下产生
1、当连接成功的时候
2、当发送的底层缓冲区满了以后,缓冲区的数据发送出去了,可以继续发送了,就会产生。
就像一个漏斗那样 如果漏斗的上面加水加的很快的话 那么漏斗就容易满。漏斗下面慢慢的流水,当漏斗满了以后,漏斗上面再加水的话 就会产生wouldblock的错误,这个时候等漏斗把他的放掉一些以后,漏斗认为可以再接收水了,那么就会产生WRITE事件,你就可以继续加水。
smwhotjay
2011-04-14
打赏
举报
回复
write 只是告诉你发送缓冲区没满,可以发送.这个意思
wileyking
2011-04-14
打赏
举报
回复
也就是 WSAAsyncSelect 模型 write 基本上用处不大了?? 要发送数据还是要主动send发送了??
通信编程:W
SAAs
ync
Select
模型
通信
异步选择(W
SAAs
ync
Select
)
基于W
SAAs
ync
Select
模型
的客户端编写
基于W
SAAs
ync
Select
模型
的客户端编写
W
SAAs
ync
Select
模型
W
SAAs
ync
Select
模型
允许应用程序以Windows 消息的形式接收网络
事件
通知。这个
模型
是为了适应Windows 的消息驱动环境而设置的,现在许多对性能要求不高的网络应用程序都采用W
SAAs
ync
Select
模型
,MFC(Microsoft ...
基于W
SAAs
ync
Select
模型
的服务端和客户端设计(MFC)
目录1 效果展示1.1 服务器和客户端界面展示1.2 一对一之间通信的功能展示...
事件
种类2.6 W
SAAs
ync
Select
模型
的优势和不足3 代码展示3.1 服务端3.1.1 定义变量3.1.2 初始化界面3.1.3 启动服务器3.1.4 消息响应3.1.5 发送...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章