当前位置: 首页 > news >正文

YxdIOCP (DIOCP修改版)

YxdIocp 是使用Delphi对Windows IOCP通讯模型的封装,基于DIOCP改进修改。YxdIocp包含有支持大并发的TCP服务组件、HTTP服务组件、UDP服务组件,和TCP、UDP等基础客户端组件。

 

【SVN】

https://github.com/yangyxd/YxdIOCP.git


【特别说明】
  本源码由YangYxd(音儿小白)以网友天地弦的DIOCP为基础修改优化而来。YxdIocp与DIOCP使用方式略有不同,不完全兼容!!
  我会接收大家提交的BUG并尽快修复,但不负责解答任何使用方面的问题。实际上代码已经有比较多的注释,开源并不等于作者需要
  免费给大家做客服解答各种问题。开源的目的一是让代码尽快成熟稳定,二是丰富行业资源和活力。“拿来主意”虽说比较快捷
  省事,但并不值得提倡,有问题张口就问不是个好习惯。

【当前版本】  

2015.08.11.001

【主要更改】  

 - -----------------------------------
 - 2015.08.11  
 - -----------------------------------  
 + HTTP服务模块支持Session, Cookies, 感谢: 天地弦  
 * 修复上个版本UdpSocket接收数据变慢的问题  
 * 优化字符串处理单元,更加高效. 感谢: 歼10  
 * 其它略微调整和优化
 - -----------------------------------
 - 2015.07.31
 - -----------------------------------
 * 优化TIocpUdpServer服务,解决退出时内存泄漏问题
 * TIocpTcpSocket优化和加强,增加两个用来判断内核接收缓冲区状态的属性:RecvBufferIsEmpty、RecvBufferSize,
   增加几个Read函数,增加Seek函数,修改Connected属性的算法(速度变慢了,但保证正确性)
 + TIocpClientContext增加BindIP和BindPort属性,可查看当前连接的本机IP地址(服务器多IP时可判断客户端是与那个IP建立的连接)
 + 增加TIocpTcpSocketPool连接池,自动管理TIocpTcpSocket。
 + 增加TIocpTcpClientProxy TCP 客户端代理服务,帮助实现服务器间通讯、数据转发。
 * 修复TIocpHttpRequest.DecodeParam函数存在的两处BUG
 * 其它细小优化,增强稳定性。
 * 感谢:Huixch(Http服务BUG),  仓井很空(2543818374, 修改IocpTcpSocket和Proxy的建议和测试)
 - -----------------------------------
 - 2015.07.19
 - -----------------------------------
 + HTTP模块增加Pipe支持
 * 优化自动踢除死连接功能, 增加KickOutInterval属性
 * 优化TIocpTCPSocket,增加ConnectTimeOut属性
 * 其它细小优化调整
 - -----------------------------------
 - 2015.06.12
 - -----------------------------------
 + 增加UDP服务
 + 增加Demo UDPEcho
 * 优化HTTP服务
 * 优化UDPSocket
 - -----------------------------------
 - 2015.05.27
 - -----------------------------------
 + 加载HTTP服务,增加表单提交支持,可上传小文件。
  HTTP模块主要功能:
  1. 支持标准Http访问服务
  2. 支持局部传输
  3. 支持文件下载,断点续传
  4. 支持表单提交
  5. 支持GZip压缩传输
 - -----------------------------------
 - 2015.05.26
 - -----------------------------------
 * 修复TIocpCustomContext中使用内存池Push时未加锁引发的严重BUG。
 * 优化HTTP服务。
 + 同步DIOCP在TIocpConnection中将请求加入队列,以免连续多个请求时产生多线程处理一个连接,引发问题。
 - -----------------------------------
 - 2015.05.21
 - -----------------------------------
 * 修复TIocpTcpCodecServer解码流程中的BUG。
 * 优化HTTP服务
 + 增加超时自动踢除功能
 - -----------------------------------
 - 2015.05.20
 - -----------------------------------
 * 修复多处BUG。如句柄数问题。
 * 修复HTTP服务多处BUG
 + HTTP服务增加文件下载功能,支持超大文件传输。
 - 将YxdHash、YxdStr精简出IOCP专用版本
 + 添加YxdIocp.dbk,可直接安装成控件
 - -----------------------------------
 - 2015.05.15
 - -----------------------------------
 * 简化使用接口。使用时只需要引用 iocp.pas 单元即可。
 * 去除重复代码。
 * 使用了一些自己编写的新类替换掉原来的类似模块,如 TIocpStream, TIocpHttpServer 等
 * 用法更简单了
 * D2007下调试通过,其它版本IDE暂未测试。
 
【感谢】
 感谢DIOCP原作者天地弦,以及DIOCP官方群、QDAC官方群所有参与本项目测试、修改的朋友。
 
【注意事项】
 您在使用中发现任何BUG、更改意见等请及时联系我们,不胜感激。
 使用本源码时您需要自行承担一切后果,作者和项目组不为此承担任何法律责任。
 您可以任意复制、更新本源码,但请注明来源,或在您的软件特定位置标注说明。
 
【联系我们】
  yangyxd QQ: 2514718952
  原作者天地弦QQ: 185511468
  DIOCP 官方群: 320641073
  QDAC 官方群: 250530692
 
【网站】
  yangyxd blog: http://www.cnblogs.com/yangyxd
  DIOCP 官方网站: http://www.diocp.org
  QDAC 官方网站: http://www.qdac.cc
 
【下载】
百度网盘: http://pan.baidu.com/s/1kTKgHoj
提取密码: ma5w

 

转载于:https://www.cnblogs.com/yangyxd/articles/4693203.html

相关文章:

  • ocp-051-3
  • java实现多线程的三种方式
  • ava垃圾加收机制和ios的arc有什么区别
  • Linux iostat命令详解
  • 建立完整的单向动态链表(包括初始化、创建、插入、删除、查找、销毁、输出)...
  • 【Go】Linux下使用Sublime Text搭建开发环境
  • 双nginx(主备、主主)反向代理tomcat实现web端负载均衡
  • c# 笔试题及参考答案大全
  • 如果有一天你没有了动力,可以看看
  • winsock 收发广播包
  • Oracle开发中的正则表达式
  • 选择算法
  • 【点杀iOS】深拷贝浅拷贝copy的那些事儿
  • 【性能调优】如何将Hybris启动时间减少30%-50%
  • springJDBC一对多关系,以及Java递归,jsp递归的实现
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 77. Combinations
  • AWS实战 - 利用IAM对S3做访问控制
  • Java 网络编程(2):UDP 的使用
  • java多线程
  • js算法-归并排序(merge_sort)
  • JWT究竟是什么呢?
  • node和express搭建代理服务器(源码)
  • PHP面试之三:MySQL数据库
  • Python连接Oracle
  • 阿里云Kubernetes容器服务上体验Knative
  • 老板让我十分钟上手nx-admin
  • 前端临床手札——文件上传
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信支付JSAPI,实测!终极方案
  • 小而合理的前端理论:rscss和rsjs
  • 栈实现走出迷宫(C++)
  • Linux权限管理(week1_day5)--技术流ken
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​TypeScript都不会用,也敢说会前端?
  • #大学#套接字
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)Linux Shell编程——输入输出重定向
  • (四)图像的%2线性拉伸
  • (循环依赖问题)学习spring的第九天
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [BJDCTF 2020]easy_md5
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改