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


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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    python locust 性能测试:locust安装和一些参数介绍
    输入一串字符,检查是否可以组成friend
    Django基础
    JQuery基础
    Javascript基础
    CSS基础
    HTML基础
    MYSQL数据库
    I/O模型
    协程-----Coroutine
  • 原文地址:https://www.cnblogs.com/GameDelphi/p/9162051.html
Copyright © 2020-2023  润新知