1 DELPHI 高 性 能 大 容 量 SOCKET 并 发 ( 一):IOCP 完成端口例子介绍 例子主要包括IOCP 控件封装、服务端实现、传输协议和日志、控制、SQL 查询、上传、下载等协议实现,并包括一些初步的性能测试结果
服务端: 界面截图如下: 提供服务和桌面方式运行,桌面方式可直接打开程序,方便日常调试,可以使用命令行注册或卸载服务,在 CMD 中输入 D:\DEMO\IOCPDemo\Bin\IOCPDemoSvr
exe -install 来注册服务,在 CMD 输入D:\DEMO\IOCPDemo\Bin\IOCPDemoSvr
exe -uninstall 来卸载服务
客户端: 界面截图如下: 主要实现了服务端日志查看,服务端协议类表查看,SQL 语句执行协议,上传、下载协议实现,其中对上传、下载实现了一个多线程同时传,用于测试服务器并发性能
性能: 支持超过 2000 个链接及以上同时上传文件,不过每个连接上传速度只有 1 到 2K
支持超过 2W 个连接同时在线传输命令
单实例上传下载测试结果: 2 从测试结果可以看出随着发送包增大,速度变快
这里存在一个风险,就是 SOCKET 传输失败的次数也会增加
3 ( 二):IOCP 完成端口控件封装 IOCP 完成端口介绍: 完成端口模型是 Windows 平台下 SOCKET 端口模型最为复杂的一种 I/O 模型
如果一个应用程序需要同时管理为数众多的套接字,而且希望随着系统内安装的 CPU 数量的增多,应用程序的性能也可以线性提升,采用完成端口模型,往往可以达到最佳的系统性能
完成端口可以管理成千上万的连接,长连接传文件可以支持 5000 个以上,长连接命令交互可以支持 20000个以上
这么大并发的连接,更需要考虑的是应用场景,按照 100M 的网卡传输速度 12
5MB/S,如果是