Delphi IOCP UDP完成端口服务端——网络高速传输数据文件系统架构

Posted gamedelphi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi IOCP UDP完成端口服务端——网络高速传输数据文件系统架构相关的知识,希望对你有一定的参考价值。

   嗯,是的,标题有些那个,不过浏览器搜索出来的几乎全部是C++的,Delphi这块完全是空缺的。

   不知道各位Delphi的爱好者们有没有关注腾讯这段时间的各种信息推广。涉及到各方面的行业。

   不过我最佩服的是他们的实时各种网络行为,不得不说,他们的服务器确实牛逼,各种实时网络视频各种交互都是相当流畅的。

   除了TCPIOCP完成端口成型之外,在这个基础上,继续调试出了UDPIOCP完成端口系统,弄这个玩意就是想做一个能够在目前这种复杂无比的网络中,能够完成游戏资源实时更新的一个高并发服务系统。

   现在的网络简直复杂得像一堆牛屎那样,你看看你桌面上的任何一个程序,有几个是不联网的?几乎没有吧!现在的玩家有几个电脑上面是不同时打开几个程序的,QQ,各种音乐播放器,各种视频播放器等等,这些都是抢夺带宽最厉害的玩意。所以传统的TCP协议的网络传输系统已经很难符合目前这种复杂的环境了。

   UDPIOCP完成端口这个玩意,构建起来不容易,网上能用的代码,一句话:没有!不相信,自己搜索搜索。

   这个玩意比TCP完成端口还复杂。

技术分享图片

     两个控件,一个UDP服务端,一个UDP客户端,至于客户端是自己新写的,内含两种设置,一种是采用常规TCP那样的链接模式,一种是非链接模式,可以设置阻塞或者异步传输。

     上面客户端采用定时器,值设置为10,这种速度发送消息比较快了,上面是两者的CPU占用情况。在完全没有优化之下,其实是非常暴力的。

     整个控件完全保持原生态,只做错误对应策略,不掺合各种,比如包检测,包重传,采用哪种传输模式等等,这些都会放到外部去。也就是说,没有各种脑子进水的各种加加加。一个字,系统稳定才是最重要,做到了这一点,无论使用在哪种场合下,都能让人放心。因为流程就是这个流程。

    我希望这个系统能够胜任在游戏资源实时更新,比如游戏微端,所谓的轻客户端方面以及实时视频更新啦,各种监控系统啦这些环境下,这样就够OK了。

    代码呢,就不写了,毕竟关注delphi的人,在国内已经很少了。算了,不写了。

以上是关于Delphi IOCP UDP完成端口服务端——网络高速传输数据文件系统架构的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI中完成端口(IOCP)的简单分析

理解I/O Completion Port(完成端口)(转载)

Delphi中的TcpServer和TcpClient以及UdpSocket的问题

IOCP实现高并发以及与传统socke编程的对比

高吞吐量的一个日志函数类_用于IOCP (Delphi)

frp内网穿透服务端frps.ini各配置参数详解