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

試著忘記壹切 提交于 2020-05-03 22:00:31

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

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

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

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

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

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

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

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

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

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

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!