c/c++ TcpServer-IOCP管理模式

本文介绍了Windows下的IOCP(完成端口)管理模式,这是一种用于高性能服务器的IO管理方式。主要内容包括IOCP的核心模式,如提交请求、等待结果及连续提交等。详细讲述了监听、读取数据和发送数据的步骤,并提到了IOCP的开发流程,如配置环境、创建IOCP、监听和读写请求的提交。
摘要由CSDN通过智能技术生成

IOCP

1: IOCP: 是windows针对高性能服务器做的IO的管理模式,又叫完成端口;
2: IOCP的核心模式:
1>提交请求;
2>等待结果;
3>继续提交请求;
3: 监听:
1>提交一个监听请求,使用完成端口来等待这个请求到来;
2>请求来了后,处理,继续提交请求;
4: 读取数据:
1>提交一个读取数据的请求。
2>请求完成后,处理完后继续提交;
5: 发送数据的请求:
1>提交一个发送数据的请求;
2>请求完成后,继续处理;


IOCP开发

1:配置IOCP开发环境:

    #include <WinSock2.h>
    #include <mswsock.h>
    #include <windows.h> 
    #pragma comment(lib, "WSOCK32.lib ")
    #pragma comment(lib, "ws2_32.lib")
    #pragma comment(lib, "odbc32.lib")
    #pragma comment(lib, "odbccp32.lib")

2: 创建一个IOCP;
3: 提交一个IOCP的监听请求:
4: 提交读请求;


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
IOCP 只支持windows平台 Linux epoll
*/
#include <WinSock2.h>
#include <MSWSock.h>
#include <Windows.h>

#pragma comment(lib,"WSOCK32.LIB")
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"odbc32.lib")
#pragma comment(lib,"odbccp32.lib")

// 非常重要的数据结构;
enum{
    IOCP_ACCEPT = 0, // 监听socket,接入请求;
    IOCP_RECV, // 读请求;
    IOCP_WRITE, // 写请求;
};


// 接收数据的时候最大的buf大小;
#define MAX_RECV_SIZE 8192


struct io_package{
    // 自己定义的, 一定要在第一个就要用WSAOVERLAPPED 结构体;?
    // 所有的请求的等待,都是等在这个结构对象上的,必须是第一个;
    WSAOV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值