重明鸟软件知识平台
@网络编程:IOCP(2)
IOCP服务端的设计大概按下面几个步骤来完成。

第一步:初始化WSA2.0并创建一个套接字。
第二步:创建一个完成端口。
第三步:根据系统CPU个数创建完成处理线程。
第四步:监听套接字申请接入,并将申请进来的套接字加入完成端口队列。(由那个线程负责执行是完成端口自已完成的,不用管)。

而处理线程要做的事只有两件:
第1件:端口是否有数据传输产生。
第2件:如果有检查是发送还是接收,并做相应处理。

为了方便主进程跟线程间传递数据,我们通常会建立一个数据结构来传递数据。比如我们建立一个IOCP_STR的结构体。
struct IOCP_STR
{
	OVERLAPPED overlapped; //这个是必须的。把结构构造为OVERLAPPED指针。
	WSABUF DataBuf; //数据指针,指向下面的buf
	char buf[BUF_SIZE]; //数据区大小
	DWORD sendbytes; //要发送多少个字节
	DWORD recvbytes; //要接收多少个字节
}

@站内查找
@栏目文章
【基础教程】Python守护进程创建
【基础教程】PyGame(13):三维环境设置
【基础教程】C/C++指针函数和回调函数
【基础教程】C/C++多进程编程(3)
【基础教程】C/C++多进程编程(2)
【基础教程】C/C++多进程编程(1)
【基础教程】C/C++多线程编程(2)
【基础教程】C/C++多线程编程(1)
【基础教程】C/C++动态库编程
【基础教程】C/C++静态库编程
【基础教程】photoshop图片混合公式
【基础教程】PyGame(12):旋转和缩放
【基础教程】PyGame(11):Surface操作
【基础教程】网络编程:Epoll(2)
【基础教程】网络编程:Epoll(1)
【基础教程】网络编程:IOCP(3)
【基础教程】网络编程:IOCP(2)
【基础教程】网络编程:IOCP(1)
【基础教程】网络编程:UDP
【基础教程】网络编程:TCP
【基础教程】Ubuntu安装Hadoop(4)
【基础教程】Ubuntu安装Hadoop(3)
【基础教程】Ubuntu安装Hadoop(2)
【基础教程】Ubuntu安装Hadoop(1)
【基础教程】Hadoop技术原理
【基础教程】Hadoop基本命令
【基础教程】Hadoop是什么东西
【基础教程】排序算法介绍
【基础教程】PyGame(10):声音控制
【基础教程】PyGame(9):鼠标事件(2)
【基础教程】PyGame(8):鼠标事件(1)
【基础教程】PyGame(7):键盘事件(2)
【基础教程】PyGame(6):键盘事件(1)
【基础教程】PyGame(5):显示图片
【基础教程】PyGame(4):显示文字
【基础教程】PyGame(3):图元绘制
【基础教程】PyGame(2):游戏框架
【基础教程】PyGame(1):开发环境搭建
【基础教程】Python(10):类定义
【基础教程】Python(9):自定义模块
【基础教程】Python(8):输入输出控制
【基础教程】Python(7):函数定义
【基础教程】Python(6):中断语句
【基础教程】Python(5):判断语句
【基础教程】Python(4):循环语句
【基础教程】Python(3):变量与运算符
【基础教程】Python(2):Hello
【基础教程】Python(1):介绍与安装
Copyright @ 2011-2018 by szc  桂ICP备11003301号-1  桂公网安备45040302000027号  Email:szcsoft@qq.com