delphi之IOCP学习(一)】的更多相关文章

困扰已久的网络通信(IOCP:完成端口),今天终于揭开她的神秘面纱了,之前百度N久还是未能理解IOCP,网络上好多博文都没有贴出源码,初学者很难正在理解IOCP并自己写出通信例子 ,经过努力,今天自己终于做出了简单的测试程序,下面贴出源码,水平有限,难免有错,希望不要误人子弟. 1.Svr主窗体 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36…
Delphi 对XML的支持---TXMLDocument类       Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocument把XML文档读到内存中,从而可以进行编辑.保存操作.TXMLDocument类是通过DOM(文档对象模型)接口来访问XML文档中的各个元素的.对于DOM接口的实现有多种方式,Delphi支持的方式有:1)微软的MSXML SDK,这种方式是通过COM对象来实现:2) Apache 的Xerce…
单元:JSonStream.pas 简介:本单元实现 流和json对象的相互转换,其中有一些保留的key. 依赖:superobject 保留key: __result.errCode  返回的错误编码 __result.msg     返回的字符串值 __result.result    返回的布尔值 __result.streamType 流的类型 Debug          调试信息 下载地址 https://code.google.com/p/diocp/ 特地为DIOCP开设了一个群…
DIOCP Demo说明 下载地址 https://code.google.com/p/diocp/ 特地为DIOCP开设了一个群:320641073,欢迎学习的IOCP的童鞋进入讨论. 核心作者: D10 Svn检出目录是 diocp-read-only 总目录说明 Source \Utils            //FastMM等一下文件<工具类> \WinSock2         //WinSock2的申明文件 \IOCP             //IOCP核心文件 \Client…
首先说明,该项目不是本人的项目,本文转自盒子. 该项目使用的DIOCP版本为1.0,目前diocp为3.5 以下是盒子的原文 ------------------------------------------------------------------------------ DIOCP是Delphi下进行IOCP服务端通讯开发的一个非常好的开源框架,稳定.高效并且使用起来十分简单.     自己两个多月之前因为需要使用Delphi开发一个TCP服务端,当时也是到处爬文,希望找到一个稳定且…
安装环境 delphi xe2 + opencv opencv 从下面的地方下载  https://github.com/Laex/Delphi-OpenCV然后按照 此网站的 说明 一项以项的 安装.重点在这里:安装opencv 的时候 代码有错误 {$ endif} 要修改为{$ ifend} 而且必须编译一次 发现一个错误 ,修改一个. 不能全部一次替换修改,因为有些不能改的(本来就正确).说不清道不明的,反正我这样搞完就 正常了. 另外一个需要注意的地方是: 32位系统好办. 如果自己的…
释放接口对象,既不是调用MyObj.Free,也不是MyObj.Release;破坏对象的正确方法是将它们设置为nil:MyInterface := nil; 一个接口不能离开实现它的对象而独立存活.这个接口仅仅是一个抽象,它仅仅是一个想法.接口具有即插即用的功能,它建立了供应商必须遵守的规范. 接口可以仅仅在一层深度上运行,比较简单.不像OOP,一层套一层,一旦改了中间层,即容易引起更下层的错误.在本质上,接口并不鼓励创建深分层结构,而鼓励相对简单的具有较好的性能特征的程序. GUID是128…
函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一系列函数: function Min (A,B: Integer): Integer; overload; function Min (A,B: Int64): Int64; overload; function Min (A,B: Single): Single; overload; functi…
对于BPL包,我个人理解是:就是一种封装方式,和DLL,EXE类似,把代码放到包(package)里面保存而已. 一.先说说如何创建BPL包 1.   打开delphi IDE(delphi7 为例)-->File-->Close ALL(关闭全部) -->File-->New-->other-->在New Item选项卡中选择(new)-->package-->ok; 2.点击ok后,delphi就帮我们创建好了一些包需要的基础东西,如下图, 这个时候我们…
知识点1:堆和栈 每个应用程序可以获得的内存空间分为两种:堆(heap)和栈(stack). 堆又称为“自由存储区”,其中的内存空间的分配与释放是必须由程序员来控制的.例如,用GetMem函数获取了一定大小的内存空间,则在使用完后,必须调用FreeMem函数将空间释放,否则就会发生所谓的“内存泄漏”.“借债还钱,天经地义”. 栈又称为“自动存储区”,其中的内存空间的分配与释放是由编译器和系统自动完成的,不需要程序员过问.函数调用时按值传递的参数所占空间.函数中的局部变量等,都是在栈中被分配空间的…