完成端口模型

本文介绍了完成端口模型的实现步骤,包括创建完成端口、设置工作线程、绑定套接字、发起重叠I/O操作及处理完成请求。通过这种方式,可以有效地处理大量并发连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完成端口模型步骤如下:

1.调用CreateIoCompletionPort函数创建完成端口。

HANDLE CompletionPort=CreateIoCompletionStatus(INVALID_HANDLE_VALUE,NULL,0,0);

2.创建和处理器数目相等的工作线程

SYSTEM_INFO SysInfo;
GetSystemInfo(&SysInfo);
for(int i=0;i<SysInfo.)
for(int i=0;i<(sysInfo.dwNumberOfProcessors);i++)
{                                                                                                                                      HANDLE ThreadHandle=(HANDLE)_beginthreadex(NULL,0,CompletionPortProcessor,ComplPort,0,NULL);                                    CloseHandle(ThreadHandle);
}

3.接受客服端连接请求,创建单句柄数据,调用CreateIoCompletionPort将客服端套接字绑定到完成端口上。

单据句柄数据结构可以自己定义字段:

struct PTR_HANDLE_DATA
{//字段可以随意定义
      SOCKET s;
      int i;
}

将套接字绑定到完成端口上:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值