社区
通信技术
帖子详情
投递到完成端口的IO操作用closesocket,GetQueuedCompletionStatus不返回?
lsgt
2009-10-19 04:51:41
投递到完成端口的IO操作用closesocket,GetQueuedCompletionStatus为什么不返回?
...全文
348
3
打赏
收藏
投递到完成端口的IO操作用closesocket,GetQueuedCompletionStatus不返回?
投递到完成端口的IO操作用closesocket,GetQueuedCompletionStatus为什么不返回?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lsgt
2009-10-20
打赏
举报
回复
今天测试了一下,很奇怪:
我用ConnectEx,如果到一个不存在的地址,第一次GQCS总是在20秒的时候返回,无论中间用不用closesocket,但之后一用closesocket,GQCS就返回了。
之后我测试了一个存在的地址,然后发出一个WSARecv请求(当然服务器不返回任何数据),无论怎样closesocket,GQCS均不返回。
我测试是主线程发出ConnectEx,GQCS线程发出WSARecv请求,然后另有一个检测超时的线程发出closesocket。
Connect成功后使用了SO_UPDATE_CONNECT_CONTEXT的。
另外我试过使用PostQueuedCompletionStatus发送一个特殊请求,以便GQCS返回待关闭的包,这时候GQCS是返回了,但用closesocket关闭socket后,过段时间,GQCS又会返回该socket,晕。
lsgt
2009-10-19
打赏
举报
回复
那我再描述一下:
我向完成端口投递了一个IO操作,例如ConnectEx,同时有一个检测超时的线程,当检查到该操作超时,我需要让GetQueuedCompletionStatus返回,以便清楚分配给该IO操作的资源。
我本来以为用closesocket(s)的话,GetQueuedCompletionStatus就会返回一个包含该socket的CompleteKey,但是GetQueuedCompetionStatus并不返回。这个是怎么回事?
pengxj7945
2009-10-19
打赏
举报
回复
描述太抽象了,没有人能回答上来。
io
模型之
完成
端口
简单实现,详解
完成
端口
C++ Windows
Socket
五种I/O模型之
完成
端口
模型
前面几章已经分别介绍了window下
socket
网络编程的几种模式,今天简单的介绍一下最后一个模型:
完成
端口
(
com
p
let
io
n
Port)模型。 关于他的一些优点网上有一堆,这边我也不再一一介绍,点而言之就是他充分利用内核对象的调度,只使用少量的几个线程来梳理和客户端所有通信,最大限度的提高了网络通信的性能。下面简单介绍一下主要涉及主要函数。 最优线程数 根据实际应用中发现,Cup核数*2+2这个数量是最优线程数(网上查询到的,我也不知道原因),获取系统内核数可调用 VOID GetSystemInfo
c++使用
完成
端口
实现服务器的高性能并发
如何使用c++,借助
完成
端口
完成
大并发服务器的搭建,是今天要讨论的问题,套路如下: 套路总结一下: 创建
完成
端口
依据CPU核数创建一定数量的线程 线程中不断调用Get
Queue
d
Com
p
let
io
n
Status
检查
完成
端口
状态,分别给予处理 创建一个
socket
,绑定IP和
端口
将这个
socket
绑定到第一步创建的
完成
端口
上 获取当前服务器的CPU核数,根据...
windows
socket
网络编程六:
完成
端口
模型
文章目录分析服务器创建
完成
端口
绑定
端口
与
SOCKET
创建线程线程内部代码
投递
accept、send、recv运行结果模型流程图源码链接 分析 我们的重叠
IO
模型还有什么问题吗? 去掉我编写时候的逻辑bug,就网络模型来说主要问题还有: 循环询问,延迟高,做了很多无用功 采用多线程,数量可能太多,我们很难管理,切换线程消耗大量cpu资源/时间 那最优线程数量是多少? 网上的几种答案: CPU核数 CPU核数*2 CPU核数*2+2 其中CPU核数*2+2 这个数量,是根据实际应用中的经验得来。线程函
手把手教你玩转
SOCKET
模型:
完成
端口
(
Com
p
let
io
n
Port)详解
这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中
完成
端口
的方方面面的信息,从API的用法到使用的步骤,从
完成
端口
的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会
完成
端口
的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。 我的初衷是希望写一份互联网上能找到的最详尽的关于
完成
端口
的教学文档,而且让对
Socket
编程略有了解的人都能够看得懂,
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章