社区
网络编程
帖子详情
完成端口的GetQueuedCompletionStatus 的设计问题
ShapeRock
2005-09-29 11:25:29
在线程中GetQueuedCompletionStatus()触发时,如果客户端发送10MB的东西,会分包发过来,这样,会触发多个线程来读各个包,我怎么设计能让一个线程读所有这10MB的数据,然后组成一个包使用。
...全文
235
14
打赏
收藏
完成端口的GetQueuedCompletionStatus 的设计问题
在线程中GetQueuedCompletionStatus()触发时,如果客户端发送10MB的东西,会分包发过来,这样,会触发多个线程来读各个包,我怎么设计能让一个线程读所有这10MB的数据,然后组成一个包使用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skykeen
2005-10-07
打赏
举报
回复
会有10M的包?你发一个看看,udp,tcp的最大包都是64k啊
netgm
2005-10-04
打赏
举报
回复
是啊.楼上的没错.没问题...每个都是单独的buf
buf的数据你想怎么玩就怎么玩..不会和其它的sock相冲
sevencat
2005-10-03
打赏
举报
回复
你需要保证对一个socket只投出一个wsarecv(),这样的话,你每次收回一个完成事件后,再对这个socket投下一个wsarecv(),下来就是为一个socket开一个buff保存你的数据了!
//================================================================
我觉得这样就OK了。没啥问题呀。
iorikingdom
2005-10-01
打赏
举报
回复
不过你用了把代码贴出来,大家看看效率如何,这个好像有点研究
iorikingdom
2005-10-01
打赏
举报
回复
用这个嘛
TransmitFile
dingpiao
2005-09-30
打赏
举报
回复
单句柄数据还是叫单什么数据来着,在那里开缓冲或者先写到硬盘在那里存个文件名
lifengice0706
2005-09-30
打赏
举报
回复
你只投了一个wsarecv(),这时他刚刚被触发完成事件,那么针对这个socket怎么还会有GetQueuedCompletionStatus()在另一个线程中触发呢?
周江涛
2005-09-30
打赏
举报
回复
为什么要一个线程去读10M?多线程交替工作,效率不是更高?
ShapeRock
2005-09-30
打赏
举报
回复
to :lifengice0706,你说的不行吧。刚数据来时,他还会处发GetQueuedCompletionStatus(),这样可能别一个线程就处理了。这不出问题了吗。
stonex_2000
2005-09-29
打赏
举报
回复
把收到的东西都放到一个链表里,然后用一个线程去读就可以了。
文件用内存影射文件,当得到一个包时,将链表的节点中的数据直接写进去,
呵呵,这不就很好解决了吗?
lifengice0706
2005-09-29
打赏
举报
回复
你需要保证对一个socket只投出一个wsarecv(),这样的话,你每次收回一个完成事件后,再对这个socket投下一个wsarecv(),下来就是为一个socket开一个buff保存你的数据了!
everandforever
2005-09-29
打赏
举报
回复
一个数据包就有10M,你这设计真的不能说是好的。
ximenying
2005-09-29
打赏
举报
回复
你可以通过设置WSARecv的缓冲区长度为0来触发FD_READ事件,然后再调用recv去阻塞收取指定大小的数据
ximenying
2005-09-29
打赏
举报
回复
我有一个办法,也是今天才搞定的,
(四)Windows网络模型之
完成
端口
模型详解
完成
端口
模型是重叠IO模型的升级版,它解决了重叠IO模型中线程过多导致效率下降的
问题
。 在
完成
端口
模型中,我们新创建一个
完成
端口
变量,并将所有的socket(包括服务器socket和客户端通信socket)都绑定到
完成
端口
上...
网络服务器编程——
完成
端口
4.3.5
完成
端口
模型(IOCP) 选择模型是5种模型中效率最低的,而
完成
端口
则是5种模型中效率最高的IO模型。 //
完成
端口
TCP服务器 #include <iostream> #include <winsock2.h> #...
完成
端口
IOCP
完成
端口
IOCP模型学习
网络编程
完成
端口
模型
网络编程
完成
端口
模型
基于
完成
端口
模型的web服务器
使用C++实现一个
完成
端口
模型,可以使用浏览器且支持并行访问的网页服务器
完成
端口
模型流程: 服务器代码逻辑: Step1初始化Windows Sockets,绑定,监听 Step2创建
完成
端口
对象。 Step3创建n个工作线程,n等于...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章