diocp从零开始1

lijunno1 lijunno1     2023-01-02     166

关键词:

diocp是windows下最复杂的通讯技术也是效率最高的,之前一直想学但都没学会。因手上有一个项目是很老的delphi项目,想用diocp改造成三层的,所以这次一定要好好学习,争取把这个技术拿下。

基础知识

想学好diocp就得先打好基础,没有基础是无从下手的,边摸索边做实例,慢慢总结经验。

异步模式:类似form.show();

阻塞模式:类似form.showModal();

 

WSAAccept;

当客户端有连接请求的时候,WSAAccept函数会新创建一个套接字cSocket。

这个函数不是异步的,是阻塞模式。

 

WSARecv;

收取socket的数据

这个函数是异步模式,执行后马上返回。

数据接收到后,GetQueuedCompletionStatus,会返回

 

GetQueuedCompletionStatus:

实现从指定的IOCP请求队列中获取请求。

当队列为空时,对此函数的调用将被阻塞。

当队列不为空时,被阻塞的线程将以后进先出(LIFO)顺序被请求出去.

 

PostQueuedCompletionStatus:

向IO完成端口Post一个I/O完成数据包。

PostQueuedCompletionStatus(lvIOPort, 0, 0, nil);

想IO端口中发送一个数据包到队列中.会触发一个GetQueuedCompletionStatus有返回值,并不会所有的线程中的GetQueuedCompletionStatus有返回值。

 

从零开始搭建系统1.6——https证书安装及配置

从零开始搭建系统1.6——Https证书安装及配置 查看详情

onehot从零开始还是从1

参考技术Aonehot是从0开始的one-hot编码是将类别变量转换为机器学习算法中容易处理的一种形式。One-hot是转化为n个特征,是对所有的状态都会进行编码。 查看详情

从零开始:二叉查找

   1、二叉树  二叉树(BinaryTree)的特点是每个结点至多具有两棵子树(即在二叉树中不存在度大于2的结点),并且子树之间有左右之分。  二叉树的性质:  (1)、在二叉树的第i层上至多有2i-1... 查看详情

[从零开始学习fpga编程-55]:视野篇-芯片的制程

目录第1章什么是芯片的制程1.1概述1.2摩尔定律1.3制程的演进路径1.4未来发展 查看详情

c#从零开始vol.1

说好的java只能先坑了,毕竟计划赶不上变化,以下是c#基础部分。 1:变量,方法的命名方式  目的就是一眼看到实例名方法名就知道该变量是做什么的。  主流的命名方式有驼峰命名规则,pascal命名规则,以及匈牙利... 查看详情

从零开始学kotlin-控制语句

从零开始学Kotlin基础篇系列文章条件控制-ifvara=10varb=20if(a>b)print(a)if(a>b){print(a)}else{print(b)}valmax=if(a>b)aelsebif(ain1..10){print("a在1到10区间内")}条件控制-whenvalx=3when(x){1->print("x是1")2->print(" 查看详情

从零开始安卓无障碍服务accessibility(代码片段)

从零开始无障碍服务文章目录从零开始无障碍服务前言一、新建项目-选择EmptyActivity二、新建BaseService类和AccessService类1.BaseService类2.AccessService类三、修改AndroidManifest.xml1.添加AccessibilityService配置2.添加allocation.xml配置文件四、修改... 查看详情

从零开始学习springboot1

1.创建一个maven工程2.修改pom.xm文件3.创建一个普通java类 RunAS运行启动 然后访问http://127.0.0.1:8080/一个简单的springBoot搭建完成 查看详情

ue0:从零开始的虚幻生活

Ue0从零开始的虚幻生活(六):控件蓝图通用元素添加控件一些常用节点控件动画通用元素添加控件1、将控件添加到屏幕2、将控件添加到角色身上一些常用节点1、设置百分比(常用于进度条)2、设置可视性... 查看详情

ue0:从零开始的虚幻生活

Ue0从零开始的虚幻生活(六):控件蓝图通用元素添加控件一些常用节点控件动画通用元素添加控件1、将控件添加到屏幕2、将控件添加到角色身上一些常用节点1、设置百分比(常用于进度条)2、设置可视性... 查看详情

keras深度学习实战(24)——从零开始构建单词向量(代码片段)

Keras深度学习实战(24)——从零开始构建单词向量0.前言1.单词向量1.1Word2Vec原理1.2构建单词向量1.3神经网络架构2.使用Keras从零开始构建单词向量3.测量单词向量之间的相似度小结系列链接0.前言在解决文本相关问题时,传统方法... 查看详情

keras深度学习实战(15)——从零开始实现yolo目标检测(代码片段)

Keras深度学习实战(15)——从零开始实现YOLO目标检测0.前言1.YOLO目标检测模型1.1锚框(anchorboxes)1.2YOLO目标检测模型原理2.从零开始实现YOLO目标检测2.1加载数据集2.2计算锚框尺寸2.3创建训练数据集2.4实现YOLO目标检测模型2.5... 查看详情

python大白从零开始opencv学习课-1.安装与环境配置(代码片段)

...f0c;也欢迎“大白”批评指正。本系列面向Python小白,从零开始实战解说OpenCV项目实战。什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。1.OpenCV计算机 查看详情

keras深度学习实战(24)——从零开始构建单词向量(代码片段)

Keras深度学习实战(24)——从零开始构建单词向量0.前言1.单词向量1.1Word2Vec原理1.2构建单词向量1.3神经网络架构2.使用Keras从零开始构建单词向量3.测量单词向量之间的相似度小结系列链接0.前言在解决文本相关问题时ÿ... 查看详情

从零开始设计一个天气app

这次打算不参考教程,实打实的开始从零设计一个天气app,因此会有比较详细的流程目前我的水平是对于一些基础框架例如rxjava,retrofit都有一定的了解,没学过的同学赶紧去学吧现在是2018年1月6日19:49:33,打算在开学前,也就... 查看详情

从零开始学架构:开篇-文章大纲

...架构系列,开始《一步一步学架构系列》(目前改名为:从零开始学架构系列)3)个人感悟:1、做技术就是做架构;2、做工作就是做管理;这两句不详细解释,大家慢慢品味。  & 查看详情

自己的微信小程序学习笔记——从零开始新建项目(代码片段)

...的微信小程序学习笔记【1】文章目录系列文章目录一、从零开始创建项目文件二、三种基础组件1.图片组件(1)图片的通常显示方式(2)图片的样式设置2.文件标签3.按钮三、flex布局1.容器概念2.flex布局一、从零开始创建项目文件  ... 查看详情

lucene全文检索-从零开始

1、lucene索引的创建1///<Contents>2///讲list数据传入创建索引3///</Contents>4///<paramname="datalist"></param>5///<returns></returns>6publicboolCreateIndex(List<LuceneIndexArticl 查看详情